在迭代用户/引擎定义的函数时,实现for循环的'break'功能的最佳方法是什么?
foreach([0,1,2,3,4],function(n){
console.log(n);
if (n==2)
break;});
我认为以一种在函数返回'false'时会破坏的方式实现foreach - 但我想听听有关通常如何完成的想法。
答案 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}}