首頁 >web前端 >js教程 >為什麼 `return` 不會打破 JavaScript 中的 `forEach` 迴圈?

為什麼 `return` 不會打破 JavaScript 中的 `forEach` 迴圈?

Linda Hamilton
Linda Hamilton原創
2024-12-20 18:24:12853瀏覽

Why Doesn't `return` Break a `forEach` Loop in JavaScript?

理解 forEach 函數中 return 的行為

在 JavaScript 中,對於 forEach 函數中 return 關鍵字的行為通常存在誤解。本文旨在闡明其預期用法。

請考慮以下程式碼片段:

$('button').click(function () {
  [1, 2, 3, 4, 5].forEach(function (n) {
    if (n == 3) {
      // It should break out here and doesn't alert anything after
      return false;
    }
    alert(n);
  });
});

在此程式碼中,在 forEach 迴圈中使用 return 語句來提前停止迭代。但是,程式碼仍然繼續警告數組中的後續元素。為什麼會發生這種情況?

forEach 中return 的真實本質

與流行的看法相反,forEach 函數中的return 語句與forEach 中的return 語句具有不同的意義循環結構如for或while。在 forEach 中,return 並不表示提前終止迴圈。

Mozilla 開發者網路說明

根據Mozilla 開發者網路官方文件:

「除了拋出異常之外,沒有其他方法可以停止或中斷forEach() 迴圈。方法是錯誤的工具。 🎜>

簡單循環: 建立傳統的for 或while循環,並具有提前終止的顯式條件。

for...of 迴圈:

利用 for...of 迴圈,它提供立即執行使用break語句終止功能。
  • Array.prototype.every(): 使用 every() 方法,它允許您應用對每個元素進行謂詞,如果謂詞對任何元素傳回 false,則儘早中斷迴圈。
  • 其他陣列方法: 其他方法,如 some()、find() 和 findIndex()提供根據特定條件中斷循環的方法。

以上是為什麼 `return` 不會打破 JavaScript 中的 `forEach` 迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn