• 白云区新办证大厅户籍办理服务平台正式投入使用啦 2019-07-13
  • 关于人类所有的知识问题,其实都是社会问题。就“社会”两个字。 2019-07-13
  • 百姓故事:蒋姐姐的旗袍人生 2019-07-10
  • 这艘军舰有美国导弹护体 仍被中国反舰导弹轻松击沉 2019-07-09
  • 把你当猪就有可能。不想得病而羸弱就得身强体壮。首先,想依靠消灭病毒而不得病,那只是痴心妄想。其次,想得天下,从来没有靠肉体的征服而成功过的先例。 2019-07-09
  • 《国家哲学社会科学“十一五”研究状况与“十二五”发展趋势》一书出版 2019-07-06
  • 夏天吃雪糕怕伤胃拉肚子 如何健康吃冷饮——食品安全频道——黄河新闻网 2019-07-06
  • 2018年成都卫星城市仍将大放异彩?下一站:资阳北 ——凤凰网房产成都 2019-07-05
  • 皇家地暖长啥样?《故宫新事》带你探寻养心殿的秘密 2019-07-05
  • 南昌古风物略记文章中国国家地理网 2019-07-01
  • 推进新时代中国特色社会主义云南新实践——访云南省委书记陈豪 2019-06-28
  • 十二届全国人大常委会第七次会议 2019-06-28
  • 原中行一支行员工被判刑 利用职务便利骗取巨额贷款并诈骗 2019-06-24
  • 孕期压力大影响胎儿大脑发育 2019-06-14
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-06-10
  • 大乐透专家预测: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-07-13
  • 关于人类所有的知识问题,其实都是社会问题。就“社会”两个字。 2019-07-13
  • 百姓故事:蒋姐姐的旗袍人生 2019-07-10
  • 这艘军舰有美国导弹护体 仍被中国反舰导弹轻松击沉 2019-07-09
  • 把你当猪就有可能。不想得病而羸弱就得身强体壮。首先,想依靠消灭病毒而不得病,那只是痴心妄想。其次,想得天下,从来没有靠肉体的征服而成功过的先例。 2019-07-09
  • 《国家哲学社会科学“十一五”研究状况与“十二五”发展趋势》一书出版 2019-07-06
  • 夏天吃雪糕怕伤胃拉肚子 如何健康吃冷饮——食品安全频道——黄河新闻网 2019-07-06
  • 2018年成都卫星城市仍将大放异彩?下一站:资阳北 ——凤凰网房产成都 2019-07-05
  • 皇家地暖长啥样?《故宫新事》带你探寻养心殿的秘密 2019-07-05
  • 南昌古风物略记文章中国国家地理网 2019-07-01
  • 推进新时代中国特色社会主义云南新实践——访云南省委书记陈豪 2019-06-28
  • 十二届全国人大常委会第七次会议 2019-06-28
  • 原中行一支行员工被判刑 利用职务便利骗取巨额贷款并诈骗 2019-06-24
  • 孕期压力大影响胎儿大脑发育 2019-06-14
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-06-10
  • 上海时时乐开奖控 2019年白小姐正版资料稳赢 2029期七星彩规律视频 棒球投手动作分解 重庆老时时彩走势图啊 甘肃十一选五任五最大遗漏一定牛 江苏15选5开奖结果 体彩官网 体彩22选5 香港一码中特公开网 瑞典二分彩开奖号码 吉林时时彩开奖彩票控 悦榕庄娱乐城送彩金 云南十一选五体彩开奖结果查询 湖北11选5开奖分布走势图