如何在 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+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告