如何在 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 將停止迴圈,而返回任何其他值都不會影響迴圈。
輸出
