• 建一座生长因子神秘王国——温州大学校长李校堃科研创新纪实 2019-05-23
  • 与希腊“和解” 马其顿将改国名为“北马其顿” 2019-05-23
  • 或许正相反,朝鲜就是例证 2019-05-15
  • 社会主义社会按劳分配是建立在公有制和私有制并存基础上的,共产主义社会按需分配是建立在公有制基础上的,所有制基础不同,其分配形式也就不同。所谓“共产主义... 2019-05-14
  • 曾祖父、曾祖母、祖父、祖母、父亲、母亲、重孙。一家7人,如果两家联姻,两家共十四人,请问:“看着就想笑”你那15人是咋算出来的? 2019-05-14
  • 当下世人皆知:美帝霸权就是搅动亚洲乃至世界混乱之源,更是整个世界和平稳定的最大威胁。 2019-05-12
  • 牵手中东,日照谱写“开放活市”新篇章 2019-05-12
  • 如何缓解眼睛疲劳 吃什么水果让眼睛明亮-美食资讯 2019-05-09
  • Li Keqiang nimmt an Pressekonferenz nach Abschluss der ersten Tagung des 13. NVK teil 2019-05-01
  • 端午假期 重庆旅游业红红火火 2019-04-27
  • 广州市第十五届人大常委会第十四次会议第一次全体会议 2019-04-22
  • 端午小长假杭州接待游客454.8万人次 9成民宿预订一空 2019-04-21
  • 法国巴黎发生人质劫持事件 2019-04-21
  • 中国保险行业协会获第十二届人民企业社会责任奖年度扶贫奖 2019-04-18
  • 3岁男童爬窗走失 民警帮忙找家人 2019-04-18
  • 山西二十选八开奖: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-05-23
  • 与希腊“和解” 马其顿将改国名为“北马其顿” 2019-05-23
  • 或许正相反,朝鲜就是例证 2019-05-15
  • 社会主义社会按劳分配是建立在公有制和私有制并存基础上的,共产主义社会按需分配是建立在公有制基础上的,所有制基础不同,其分配形式也就不同。所谓“共产主义... 2019-05-14
  • 曾祖父、曾祖母、祖父、祖母、父亲、母亲、重孙。一家7人,如果两家联姻,两家共十四人,请问:“看着就想笑”你那15人是咋算出来的? 2019-05-14
  • 当下世人皆知:美帝霸权就是搅动亚洲乃至世界混乱之源,更是整个世界和平稳定的最大威胁。 2019-05-12
  • 牵手中东,日照谱写“开放活市”新篇章 2019-05-12
  • 如何缓解眼睛疲劳 吃什么水果让眼睛明亮-美食资讯 2019-05-09
  • Li Keqiang nimmt an Pressekonferenz nach Abschluss der ersten Tagung des 13. NVK teil 2019-05-01
  • 端午假期 重庆旅游业红红火火 2019-04-27
  • 广州市第十五届人大常委会第十四次会议第一次全体会议 2019-04-22
  • 端午小长假杭州接待游客454.8万人次 9成民宿预订一空 2019-04-21
  • 法国巴黎发生人质劫持事件 2019-04-21
  • 中国保险行业协会获第十二届人民企业社会责任奖年度扶贫奖 2019-04-18
  • 3岁男童爬窗走失 民警帮忙找家人 2019-04-18