私は 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
。