【问题标题】:How do I exit an Array.forEach loop early? [duplicate]如何提前退出 Array.forEach 循环? [复制]
【发布时间】:2019-10-04 22:42:29
【问题描述】:

我正在使用 JavaScript 解决家庭作业问题。我有一个目前有效的解决方案,但我确信这不是最有效的方法。我正在遍历数组以检查 any 元素是否满足特定条件。但似乎没有办法提前退出forEach() 函数。在其他语言中,我使用 break 提前退出了 forEach 循环。 JavaScript 中是否存在类似的东西?

我的代码(针对这个问题进行了简化):

let conditionMet = false;

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

【问题讨论】:

    标签: javascript loops foreach


    【解决方案1】:

    您可以使用Array.some (see docs),而不是使用Array.forEach。此函数遍历数组的元素,检查 any 元素是否满足特定条件。如果找到满足条件的元素,则函数停止迭代,并返回true。如果不是,该函数返回false。这意味着您也可以跳过将conditionMet初始化为false的步骤。

    因此您的代码可以简化为:

    let conditionMet = numbers.some(number => (number % 3 === 0));
    

    【讨论】:

    • 谢谢——这正是我想要的!
    【解决方案2】:

    除非通过异常,否则您不能中断 .foreach() 循环 因此,您可以选择其他工具,例如简单的 for 循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多