JavaScript:在'foreach'循环中模拟'break'

时间:2012-09-02 17:32:38

标签: javascript foreach iteration break

在迭代用户/引擎定义的函数时,实现for循环的'break'功能的最佳方法是什么?

foreach([0,1,2,3,4],function(n){
    console.log(n);
    if (n==2)
        break;});

我认为以一种在函数返回'false'时会破坏的方式实现foreach - 但我想听听有关通常如何完成的想法。

1 个答案:

答案 0 :(得分:7)

return false each: function( object, callback ) { var i = 0, length = object.length, for ( var value = object[0]; i < length && callback.call( value, i, value ) !== false; // break if false is returned by the callback value = object[++i] ) {} return object; } 是最常见的做法。这就是jQuery的迭代器函数.each()所做的:

  

我们可以在特定的迭代中打破$ .each()循环   回调函数返回 false 。返回非假是与a相同   在for循环中继续声明;它将立即跳到下一个   迭代。

非常简化的实施:

{{1}}