如何提前退出Array.forEach循环?

3

我正在使用 JavaScript 解决一个家庭作业问题。我有一个目前可以工作的解决方案,但我确信它不是最有效的方法。我正在迭代一个数组来检查是否有任何元素符合某个条件。但似乎没有一种方法可以提前退出forEach()函数。在其他语言中,我使用break来提前退出 forEach 循环。JavaScript 中是否存在类似的功能?

我的代码(为简化问题而简化):

let conditionMet = false;

numbers.forEach((number) => {
  if (number % 3 === 0) {
    conditionMet = true;
    // break; <-- does not work!
  }
});
2个回答

8
相比使用 Array.forEach,你可以使用 Array.some (查看文档)。该函数遍历数组元素,检查是否有任何一个元素满足特定条件。如果找到满足条件的元素,则函数停止迭代,并返回true。如果没有找到,则函数返回false。这意味着你也可以跳过将 conditionMet 初始化为 false 的步骤。
因此,你的代码可以简化为:
let conditionMet = numbers.some(number => (number % 3 === 0));

谢谢 - 这正是我在寻找的! - user12166726

0

除非出现异常,否则无法中断 .foreach() 循环,因此您可以选择另一个工具,例如简单的 for 循环。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接