是否有可能打破每个循环的下划线..?
_.each(obj, function(v,i){
if(i > 2){
break // <~ does not work
}
// some code here
// ...
})
我可以使用另一种设计模式吗?
是否有可能打破每个循环的下划线..?
_.each(obj, function(v,i){
if(i > 2){
break // <~ does not work
}
// some code here
// ...
})
我可以使用另一种设计模式吗?
我不认为你可以,所以你只需要将函数的内容包装在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;
});
现在你不能打破每个循环。这里正在讨论:https ://github.com/documentcloud/underscore/issues/596
也许在未来的版本中。