• 金正恩对中国进行访问 2019-02-14
  • 王毅昨晚通了两个电话,力防朝鲜半岛出现“八月危机” 2019-02-14
  • 【理上网来·辉煌十九大】普京评中共十九大报告:中国着眼未来前景非凡—国际在线移动版 2018-12-29
  • 习近平时间|用屈原精神“塑心”“立行” 2018-12-29
  • 双色球开奖结果今天:JavaScript使用类似break机制中断forEach循环的方法

    时间:2018-11-14来源/作者:ourjs 编辑:源码库 文章热度:

    双色球基本走势图表图 www.jpkp.net JavaScript数组对象,有一个forEach方法,可枚举每一个数组元素,但并不支持类似for循环的break语法,中断循环:

    [1,2,3].forEach(function(item) {
      // if(!item) break; 不支持
    });

    解决办法,可抛出一个特殊异常,来中断forEach循环,原理:

    var BreakException = {};
    try {
    [1, 2, 3].forEach(function(el) {
    console.log(el);
    if (el === 2) throw BreakException;
    });
    } catch (e) {
    if (e !== BreakException) throw e;
    }

    也可复写forEach方法:

    // Use a closure to prevent the global namespace from be polluted.
    (function() {
    // Define StopIteration as part of the global scope if it
    // isn't already defined.
    if(typeof StopIteration == "undefined") {
    StopIteration = new Error("StopIteration");
    }
    // The original version of Array.prototype.forEach.
    var oldForEach = Array.prototype.forEach;
    // If forEach actually exists, define forEach so you can
    // break out of it by throwing StopIteration. Allow
    // other errors will be thrown as normal.
    if(oldForEach) {
    Array.prototype.forEach = function() {
    try {
    oldForEach.apply(this, [].slice.call(arguments, 0));
    }
    catch(e) {
    if(e !== StopIteration) {
    throw e;
    }
    }
    };
    }
    })();

    使用

    // Show the contents until you get to "2".
    [0,1,2,3,4].forEach(function(val) {
    if(val == 2)
    throw StopIteration;
    alert(val);
    });

    总结

    以上所述是小编给大家介绍的JavaScript使用类似break机制中断forEach循环的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ASPKU源码库网站的支持!


    注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
    相关JavaScript/Ajax教程
    热门标签

    JavaScript/Ajax教程Rss订阅JavaScript/Ajax教程搜索

  • 金正恩对中国进行访问 2019-02-14
  • 王毅昨晚通了两个电话,力防朝鲜半岛出现“八月危机” 2019-02-14
  • 【理上网来·辉煌十九大】普京评中共十九大报告:中国着眼未来前景非凡—国际在线移动版 2018-12-29
  • 习近平时间|用屈原精神“塑心”“立行” 2018-12-29