在 JavaScript 中使用異常終止一個 forEach 迴圈

Sahil Bhosale 2021年9月22日
在 JavaScript 中使用異常終止一個 forEach 迴圈

與其他程式語言不同,JavaScript 程式語言帶有各種 for 迴圈的變體,我們只能看到傳統的 for 迴圈,它由 3 件事組成-初始化,條件以及遞增或遞減。我們必須遵循這三個要素,以使傳統的 for 迴圈工作。這似乎很令人困惑,特別是如果你是程式設計新手。

JavaScript 為我們提供了一種編寫 for 迴圈的新方法,也就是 forEach 迴圈。forEach 迴圈用於遍歷陣列。許多開發人員更喜歡使用 forEach 迴圈而不是傳統的 for 迴圈來遍歷陣列,因為它更容易編寫且可讀性更高。

任何迴圈,無論是 for 迴圈還是 while 迴圈,都可以藉助 break 語句終止。使用 forEach 迴圈遍歷陣列的唯一缺點是無法使用 break 關鍵字終止它。有時在程式執行過程中某些特定條件成立(真或假)時,我們想終止 forEach 迴圈。因此,為此,我們可以使用異常處理。

使用 JavaScript 中的 try...catch 塊終止 forEach 迴圈

為了實現 array.forEach 迴圈中 break 語句提供的功能,我們可以使用 JavaScript 中提供的異常處理的概念。如果在執行程式時發生一些錯誤並避免不必要的程式崩潰,則異常處理就是處理異常情況。這是藉助 try...catch 塊完成的。

try 塊是編寫所有程式碼的地方。catch 塊將包含用於處理異常的程式碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    <p id="errorMsg"></p>

    <script>
        var arr = [1, 2, 3, 4, 5]
        try {
        arr.forEach((element)=> {
            if (element === 4) throw "number is equal to four";
            console.log(element);
        });
        } 
        catch (e) {
            errorMsg = document.getElementById('errorMsg');
            errorMsg.innerHTML = "Error: " + e + ".";
        }
    </script>
</body>
</html>

輸出:

// The below output will be printed on the screen.
Error: number is equal to four.

// The below output will be printed inside the web browser console
1
2
3

這是我們的 HTML 5 文件。在 <body> 標籤內。我們有一個段落標籤,其中的 iderrorMsg。此段落標籤將用於顯示將由我們的 JavaScript 程式引發的錯誤訊息。

<script> 標籤內,我們有實際的程式。在這裡,首先,我們宣告瞭一個名為 arr 的陣列,其中包含從 1 到 5 的元素。這裡的主要目標是使用 forEach 迴圈對該陣列進行迭代,當它到達 arr 陣列中的元素 4 時中斷迴圈。

try 塊中,我們使用 forEach 迴圈遍歷此陣列。在此迴圈中,我們傳入了匿名函式(也稱為箭頭函式)。在該函式內部,我們有一個 if 語句來檢查陣列中特定位置的元素是否為 4。如果不是 4,它將在網路瀏覽器的控制檯中列印該元素。否則,將丟擲異常,顯示 number is equal to four

try 塊引發的該異常將被 catch 塊捕獲,並儲存在變數 e 中。現在,藉助稱為 innerHTML 的 HTML 屬性,可以顯示 p 標籤內變數 e 內的錯誤訊息。這是在 JavaScript 中遍歷陣列時在 forEach 迴圈內實現 break 功能的整個過程。

作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相關文章 - JavaScript Loop