問題:
Node.js と Mongoose で、forEach ループ内で再帰関数を実行する無限ループが発生する可能性があります。これを防ぐにはどうすればよいでしょうか?
答え:
forEach ループは従来のループ構造を持たずに単一の操作として実行されるため、ループから直接抜け出すことはできません。ただし、破壊動作を模倣する別の方法もあります。
1.コンテキストの使用:
コンテキストとして使用する 2 番目の引数を forEach に渡し、そこにブール変数を格納します。 forEach 関数内で if ステートメントを使用してブール値を確認し、必要に応じて終了します。
2.例外処理:
forEach ループ全体を try-catch ブロックで囲み、中断する場合は例外をスローします。この方法は、パフォーマンスとコードの保守性に影響を与えるため、あまり推奨されません。
3. Every() または some() の使用:
forEach の代わりに、every() または some() メソッドを使用します。これにより、戻り値に基づいてカスタムの反復、制御、早期終了が可能になります。
every() の使用例:
<code class="javascript">['a', 'b', 'c'].every(function(element, index) { // Do your thing, then: if (you_want_to_break) return false; else return true; });</code>
以上がJavaScript forEach の無限ループから抜け出すには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。