我正在使用 Node.js 和 Mongoose - 试图在递归函数嵌套的深层评论中找到特定的评论forEach。有没有办法停止 Node.js forEach?据我了解,每次forEach迭代都是一个函数,而且我不能只做break,return但不会停止forEach。
forEach
break
return
function recurs(comment) { comment.comments.forEach(function(elem) { recurs(elem); //if(...) break; }); }
你不能脱离forEach. 不过,我可以想出三种方法来伪造它。
1.丑陋的方式 :将第二个参数传递forEach给用作上下文,并在其中存储一个布尔值,然后使用一个if。这看起来很糟糕。
if
2. 有争议的方式 :将整个事物包围在一个try-catch块中,当你想打破时抛出异常。这看起来很糟糕,可能会影响性能,但可以封装。
try-catch
3.有趣的方式 :使用 every() 。
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打破,你可以改用。
some()
return true