web-dev-qa-db-ja.com

各ループ内で「継続」する方法:アンダースコア、node.js

Node.jsのコードは非常に単純です。

_.each(users, function(u, index) {
  if (u.superUser === false) {
    //return false would break
    //continue?
  }
  //Some code
});

私の質問は、superUserがfalseに設定されている場合、「一部のコード」を実行せずに次のインデックスに進むにはどうすればよいですか?

PS:else条件が問題を解決することを知っています。それでも答えを知りたい。

78
user1741851
_.each(users, function(u, index) {
  if (u.superUser === false) {
    return;
    //this does not break. _.each will always run
    //the iterator function for the entire array
    //return value from the iterator is ignored
  }
  //Some code
});

覚えておいてください(ダッシュ(アンダースコアなし)_.forEach「ループ」を早期に終了したい場合は、明示的にreturn false iteratee関数とlodashからforEachループを早期に終了します。

131
Peter Lyons

Forループのcontinueステートメントの代わりに、underscore.jsの_.each()returnステートメントを使用して、現在の反復のみをスキップできます。

12
Vishnu PS
_.each(users, function(u, index) {
  if (u.superUser) {
    //Some code
  }
});
0
pdoherty926