1. ホーム
  2. javascript

[解決済み] JavascriptのforEachを停止する方法は?重複

2022-03-22 06:54:06

質問

Node.js と Mongoose を使って、再帰関数と forEach の中にあります。Node.jsを停止する方法はありますか? forEach ? 私が理解しているように、すべての forEach の繰り返しは関数であり、単に break のみです。 return が、これでは forEach .

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

        recurs(elem);

        //if(...) break;

    });
}

解決方法は?

を解除することはできません。 forEach . ごまかす方法は3つほど思いつきますが。

1. 不細工な方法 に第2引数を渡します。 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 をブレイクさせる。