小编典典

如何停止 Javascript forEach?

all

我正在使用 Node.js 和 Mongoose - 试图在递归函数嵌套的深层评论中找到特定的评论forEach。有没有办法停止 Node.js
forEach?据我了解,每次forEach迭代都是一个函数,而且我不能只做breakreturn但不会停止forEach

function recurs(comment) {
    comment.comments.forEach(function(elem) {

        recurs(elem);

        //if(...) break;

    });
}

阅读 97

收藏
2022-03-14

共1个答案

小编典典

你不能脱离forEach. 不过,我可以想出三种方法来伪造它。

1.丑陋的方式 :将第二个参数传递forEach用作上下文,并在其中存储一个布尔值,然后使用一个if。这看起来很糟糕。

2. 有争议的方式 :将整个事物包围在一个try-catch块中,当你想打破时抛出异常。这看起来很糟糕,可能会影响性能,但可以封装。

3.有趣的方式 :使用 every()

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

some() 如果你想return true打破,你可以改用。

2022-03-14