如何在 Lodash 中中斷 forEach() 方法?


我們可以透過使用 _.breakLoop() 方法來退出 Lodash 中的 forEach() 方法。此方法允許我們立即退出迴圈並停止迭代。要使用它,我們需要在迴圈的回撥函式中將迴圈變數作為引數傳遞給 _.breakLoop() 方法。讓我們首先看看什麼是 LodashJS -

Lodash 是一個 JavaScript 庫,它提供了用於常見程式設計任務的實用程式函式。它是一個現代的 JavaScript 實用程式庫,提供模組化、效能和額外功能。它類似於 Underscore.js,並提供廣泛的功能來處理陣列、數字、物件和字串。

Lodash 易於使用,並且可以將函式連結在一起以對相同資料執行多個操作。它還針對性能進行了高度最佳化,並且廣泛用於 Web 開發。

方法

Lodash 中的 forEach() 方法沒有內建的“中斷”或提前退出迴圈的方式。

  • 但是,您可以透過改用 some()every() 方法來實現這一點,並在您想要退出迴圈時分別返回 true 或 false。

  • 另一種方法是使用 _.find()_.findIndex() 方法,當回撥函式返回 true 時停止迭代。

  • 您還可以使用傳遞給 forEach() 的回撥函式中的 return 語句來提前退出迴圈。例如,您可以使用以下程式碼在滿足特定條件時中斷 forEach() 迴圈 -

_.forEach(list, function(item) {
   if (condition) {
      return false;
   }
});

值得注意的是,return 語句不是在 javascript 中中斷 forEach 的標準方法,它只是一種退出函式的方法,它並非旨在中斷迴圈,但它在這種情況下作為停止迴圈的一種方法有效,因為 forEach 使用回撥的返回值作為確定是否繼續遍歷陣列的方式。

示例

以下是如何在 Lodash 中使用 _.forEach() 方法迭代陣列並在滿足特定條件時中斷迴圈的示例 -

const _ = require('lodash');
const myArray = [1, 2, 3, 4, 5];
_.forEach(myArray, (value, index) => {
   if (value === 3) {
      console.log('Found 3 at index', index);
      return false; // this will break out of the loop
   }
   console.log(value);
});

解釋

在此示例中,_.forEach() 方法用於迭代 myArray 陣列。作為第二個引數傳遞給 _.forEach() 的函式是一個回撥函式,該函式針對陣列中的每個元素呼叫。回撥函式接受兩個引數 - 當前值和當前索引。

回撥函式檢查當前值是否等於 3。如果是,則向控制檯記錄一條訊息並返回 false。返回 false 將中斷迴圈,迭代將停止。

如果當前值不等於 3,則回撥函式會將當前值記錄到控制檯。

它將列印 -

1
2
Found 3 at index 2

注意 - _.forEach 方法不返回值,因此它沒有可用於中斷迴圈的返回值。相反,_.forEach 使用回撥的返回值來確定是否應停止迴圈。從回撥函式返回 false 將停止迴圈,而返回任何其他值都不會影響迴圈。

輸出

更新於: 2023年2月16日

2K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告