1

如果你有:

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

查看下划线来源,您可以摆脱forEach使用

var breaker = {};

但是,断路器并未发布到公共范围,并且似乎是一个内部变量。

4

1 回答 1

4

您可以使用 some 而不是 forEach,这将在您第一次返回非虚假内容时停止它。相反的是every(),当你返回一些虚假的东西时它会停止。

您仍然必须使用闭包传递数据,因为 .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);
});
于 2013-06-11T20:35:18.793 回答