如何在每个循环中“继续”: 下划线,node.js

Js 中的代码非常简单。

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

我的问题是,如果 superUser 设置为 false,那么如何在不执行“ Some code”的情况下继续执行下一个索引?

附言: 我知道一个其他的条件可以解决这个问题。我还是很想知道答案。

53322 次浏览
_.each(users, function(u, index) {
if (u.superUser) {
//Some code
}
});
_.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
});

需要注意的是,如果您确实希望提前结束“循环”,那么使用 loash (而不是下划线) _.forEach可以从迭代函数显式地结束 return false,而 loash 将提前结束 forEach循环。

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