如何打破forEach循环?

时间:2013-06-11 20:32:15

标签: javascript underscore.js

如果你有:

var some = [0,1,2,3];
_.forEach(some, function (val) {
    if(val === 1) {
        // this return does nothing
        return;
    }
});

查看underscore source,您可以使用

突破forEach
var breaker = {};

然而,断路器不会释放到公共范围,并且似乎是内部变量。

1 个答案:

答案 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);
});