当您迭代用户/引擎定义的函数时,实现 for 循环的“中断”功能模拟的最佳方法是什么?
foreach([0,1,2,3,4],function(n){
console.log(n);
if (n==2)
break;});
我曾想过以一种在函数返回“false”时会中断的方式实现 foreach - 但我想听听关于通常如何完成的想法。
当您迭代用户/引擎定义的函数时,实现 for 循环的“中断”功能模拟的最佳方法是什么?
foreach([0,1,2,3,4],function(n){
console.log(n);
if (n==2)
break;});
我曾想过以一种在函数返回“false”时会中断的方式实现 foreach - 但我想听听关于通常如何完成的想法。
return
ingfalse
是最常见的方法。这就是 jQuery 的迭代器函数的.each()
作用:
我们可以通过使回调函数返回false来在特定迭代中打破 $.each() 循环。返回非 false 与 for 循环中的 continue 语句相同;它将立即跳到下一次迭代。
及其非常简化的实现:
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;
}