打破_.each循环

时间:2013-04-26 20:22:58

标签: javascript underscore.js break

是否有可能在每个循环中突破下划线..?

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

我可以使用其他设计模式吗?

2 个答案:

答案 0 :(得分:9)

我认为你不能,所以你只需要在i < 2中包含该函数的内容或使用return。使用.some.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;
});

答案 1 :(得分:0)

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

也许是未来的版本。