Javascript forEachを停止するにはどうすればいいですか? [重複] 質問する

Javascript forEachを停止するにはどうすればいいですか? [重複] 質問する

私は Node.js と Mongoose を使っていて、再帰関数と内部で深くネストされたコメントから特定のコメントを見つけようとしていますforEach。Node.js を停止する方法はありますかforEach? 私の理解では、すべてのforEach反復は関数であり、 だけを実行することはできませんがbreak、 だけreturnでは停止しませんforEach

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

        recurs(elem);

        //if(...) break;

    });
}

ベストアンサー1

から抜け出すことはできませんforEach。しかし、それを偽装する方法が 3 つ思いつきます。

1. 醜い方法forEach:に2番目の引数を渡す文脈として使う、そこにブール値を格納してから、 を使用します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

おすすめ記事