如果你有:
var some = [0,1,2,3];
_.forEach(some, function (val) {
if(val === 1) {
// this return does nothing
return;
}
});
查看underscore source,您可以使用
突破forEach
var breaker = {};
然而,断路器不会释放到公共范围,并且似乎是内部变量。
答案 0 :(得分:4)
你可以使用一些而不是forEach,这将在你第一次返回非虚假的东西时停止它。 相反的是每个(),当你返回一些虚假的东西时它会停止。
您仍然必须使用闭包传递数据,因为.some()将返回true或false。
var some = [0,1,2,3];
_.some(some, function (val, index) {
if(val === 1) {
// this return does nothing
alert("exiting at step "+index+" from finding "+val);
return true;
}
alert("continuing at step "+index+" found "+val);
});