4

是否有可能打破每个循环的下划线..?

_.each(obj, function(v,i){
  if(i > 2){
    break // <~ does not work
  }
  // some code here
  // ...
})

我可以使用另一种设计模式吗?

4

2 回答 2

9

我不认为你可以,所以你只需要将函数的内容包装在i < 2或使用return. .some使用or可能更有意义.every

编辑:

//pseudo break
_.each(obj, function (v, i) {
    if (i <= 2) {
        // some code here
        // ...
    }
});

上面的问题当然是它必须做整个循环,但这只是下划线的一个弱点each

不过,您可以使用.every(本机数组方法或下划线方法):

_.every(obj, function (v, i) {
    // some code here
    // ...
    return i <= 2;
});
于 2013-04-26T20:26:01.927 回答
0

现在你不能打破每个循环。这里正在讨论:https ://github.com/documentcloud/underscore/issues/596

也许在未来的版本中。

于 2013-04-26T20:40:13.093 回答