• [酷]比西方国家的预约排队制要高明多了! 2019-03-21
  • 普京力挽狂澜,从北高加索平叛到格鲁吉亚兴兵,从克里米亚回归到叙利亚反恐,给了俄罗斯人民新生——这一切都是和中国同志的支持分不开的。 2019-03-18
  • 合肥:敬业医生头天接受手术 次日打着吊瓶工作 2019-03-18
  • “一带一路”中小企业国际合作高峰论坛三大亮点 2019-03-14
  • “自己做不到的事情,还看不得别人做”.....好像目前正在热议的特朗谱长公主伊万卡在推特上引用的一句“中国谚语”.....巧合吗? 2019-03-14
  • 山西拨付2.7亿元资金支持全省七大河流生态修复治理 2019-03-06
  • 【诗会马克思】第四期 :《怪影》节选 2019-02-21
  • 端午节山东无高温、无大雨 整体在30℃左右 2019-02-14
  • 香港特区立法会通过广深港高铁“一地两检”条例草案--旅游频道 2019-02-14
  • 捷途X70X70S正式下线 将于第3季度上市 2019-01-08
  • 2016环球医院院长领导力闭门会议 2019-01-08
  • 山西二十选八开奖:JavaScript使用类似break机制中断forEach循环的方法

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

    山西十一选五遗漏10 www.fqjb.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-03-21
  • 普京力挽狂澜,从北高加索平叛到格鲁吉亚兴兵,从克里米亚回归到叙利亚反恐,给了俄罗斯人民新生——这一切都是和中国同志的支持分不开的。 2019-03-18
  • 合肥:敬业医生头天接受手术 次日打着吊瓶工作 2019-03-18
  • “一带一路”中小企业国际合作高峰论坛三大亮点 2019-03-14
  • “自己做不到的事情,还看不得别人做”.....好像目前正在热议的特朗谱长公主伊万卡在推特上引用的一句“中国谚语”.....巧合吗? 2019-03-14
  • 山西拨付2.7亿元资金支持全省七大河流生态修复治理 2019-03-06
  • 【诗会马克思】第四期 :《怪影》节选 2019-02-21
  • 端午节山东无高温、无大雨 整体在30℃左右 2019-02-14
  • 香港特区立法会通过广深港高铁“一地两检”条例草案--旅游频道 2019-02-14
  • 捷途X70X70S正式下线 将于第3季度上市 2019-01-08
  • 2016环球医院院长领导力闭门会议 2019-01-08