我正在寻找一种方法来停止下划线.js _.each()方法的迭代,但找不到解决方案。如果返回false, jQuery .each()会中断。

是否有方法停止用下划线each()?

_([1,2,3]).each(function(v){
    if (v==2) return /*what?*/;
})

当前回答

你可以看看_。Some而不是_.each。 _。一旦谓词为真,就停止遍历列表。 结果可以存储在外部变量中。

_.some([1, 2, 3], function(v) {
    if (v == 2) return true;
})

看到http://underscorejs.org/一些

其他回答

_([1,2,3]).find(function(v){
    return v if (v==2);
})

你不能用下划线打断forEach,因为它模仿EcmaScript 5本机行为。

我相信如果你的数组实际上是一个对象,你可以返回一个空对象。

_.({1,2,3,4,5}).each(function(v){  
  if(v===3) return {}; 
});

你可以看看_。Some而不是_.each。 _。一旦谓词为真,就停止遍历列表。 结果可以存储在外部变量中。

_.some([1, 2, 3], function(v) {
    if (v == 2) return true;
})

看到http://underscorejs.org/一些

对我来说很有效

var arr2 = _.filter(arr, function(item){
    if ( item == 3 ) return item;
});