我正在使用nodejs和mongoose —尝试在嵌套有递归函数和foreach的深层注释中找到特定的注释。有没有一种方法可以停止nodejs forEach?据我了解,每个forEach迭代都是一个函数,并且我不能只执行“ break”,而只能执行“ return”,但这不会停止foreach。
function recurs(comment){ comment.comments.forEach(function(elem){ recurs(elem); //if(...) break; }); }
您无法打破forEach。不过,我可以想到三种伪造方法。
forEach
1.The Ugly Way :传递给第二个参数forEach,以如上下文中使用,并存储在那里一个布尔值,然后使用if。看起来糟透了。
if
2.The Controversial Way:将整个内容围成一个try-catch块,当您想破坏时抛出异常。这看起来很糟糕,可能会影响性能,但是可以封装。
try-catch
3.The Fun Way :使用 every() 。
every()
['a', 'b', 'c'].every(function(element, index) { // Do your thing, then: if (you_want_to_break) return false else return true })