如何在 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 将停止循环,而返回任何其他值都不会影响循环。