一尘不染

如何停止JavaScript forEach?[重复]

javascript

我正在使用nodejs和mongoose —尝试在嵌套有递归函数和foreach的深层注释中找到特定的注释。有没有一种方法可以停止nodejs
forEach?据我了解,每个forEach迭代都是一个函数,并且我不能只执行“ break”,而只能执行“ return”,但这不会停止foreach。

function recurs(comment){
    comment.comments.forEach(function(elem){
        recurs(elem);
        //if(...) break;
    });
}

阅读 682

收藏
2020-05-01

共1个答案

一尘不染

您无法打破forEach。不过,我可以想到三种伪造方法。

1.The Ugly Way :传递给第二个参数forEach,以如上下文中使用,并存储在那里一个布尔值,然后使用if。看起来糟透了。

2.The Controversial Way:将整个内容围成一个try-catch块,当您想破坏时抛出异常。这看起来很糟糕,可能会影响性能,但是可以封装。

3.The Fun Way :使用 every()

['a', 'b', 'c'].every(function(element, index) {
  // Do your thing, then:
  if (you_want_to_break) return false
  else return true
})
2020-05-01