80

node.js 中的代码很简单。

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

我的问题是,如果 superUser 设置为 false,如何在不执行“某些代码”的情况下继续下一个索引?

PS:我知道 else 条件可以解决问题。还是很想知道答案。

4

3 回答 3

139
_.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
});

旁注,使用 lodash(不是下划线)_.forEach,如果你想提前结束“循环”,你可以return false从 iteratee 函数中显式地结束,lodash 会forEach提前结束循环。

于 2013-09-06T06:17:52.690 回答
12

您可以在 underscore.js 中使用语句而不是continuefor 循环中的语句,它只会跳过当前迭代。return_.each()

于 2015-11-28T18:35:01.050 回答
0
_.each(users, function(u, index) {
  if (u.superUser) {
    //Some code
  }
});
于 2013-09-06T06:16:09.320 回答