【问题标题】:JavaScript: simulating 'break' inside 'foreach' loopJavaScript:在“foreach”循环中模拟“break”
【发布时间】:2012-08-27 14:55:15
【问题描述】:

在迭代用户/引擎定义的函数时,实现 for 循环的“中断”功能模拟的最佳方法是什么?

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

我曾想过以一种在函数返回“false”时会中断的方式实现 foreach - 但我想听听有关通常如何完成的想法。

【问题讨论】:

    标签: javascript foreach iteration break


    【解决方案1】:

    returning false 是最常用的方法。这就是 jQuery 的迭代器函数 .each() 所做的:

    我们可以在特定的迭代中打破 $.each() 循环,方法是 回调函数返回 false。返回非 false 与 a 相同 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;
    }
    

    【讨论】:

    • 这回答了这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2017-05-12
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多