JavaScript使用类似break机制中断forEach循环的方法

 更新时间:2018年11月13日 16:41:53   作者:ourjs  
这篇文章主要介绍了JavaScript使用类似break机制中断forEach循环的方法,需要的朋友可以参考下

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循环的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • layer弹出的iframe层在执行完毕后关闭当前弹出层的方法

    layer弹出的iframe层在执行完毕后关闭当前弹出层的方法

    今天小编就为大家分享一篇layer弹出的iframe层在执行完毕后关闭当前弹出层的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • JavaScript中模拟实现jsonp

    JavaScript中模拟实现jsonp

    这篇文章主要介绍了JavaScript中模拟实现jsonp,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • js防抖和节流的深入讲解

    js防抖和节流的深入讲解

    这篇文章主要给大家介绍了关于js防抖和节流的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 类似php的js数组的in_array函数自定义方法

    类似php的js数组的in_array函数自定义方法

    PHP的数组函数in_array()非常方便,下面就为大家介绍下自定义类似php的js数组的in_array函数,具体实现方法如下,感兴趣的朋友可以参考下
    2013-12-12
  • Javascript图像处理—为矩阵添加常用方法

    Javascript图像处理—为矩阵添加常用方法

    上一篇文章,我们定义了矩阵,这篇文章我们来给矩阵添加一些常用方法比如:toString方法、clone方法等,需要了解的朋友可以详细参考下
    2012-12-12
  • JavaScript 中Date对象的格式化代码方法汇总

    JavaScript 中Date对象的格式化代码方法汇总

    JavaScript默认的时间格式我们一般情况下不会用,所以需要进行格式化,下面小编给大家带来了三种js date对象格式化实例代码,需要的朋友参考下吧
    2017-09-09
  • JavaScript实现瀑布流布局详解

    JavaScript实现瀑布流布局详解

    这篇文章主要为大家详细介绍了JavaScript瀑布流的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-07-07
  • HTML页面登录时的JS验证方法

    HTML页面登录时的JS验证方法

    这篇文章主要介绍了HTML界面登录时的JS验证方法,需要的朋友可以参考下
    2014-05-05
  • JS实现分页浏览横向图片(类轮播)实例代码

    JS实现分页浏览横向图片(类轮播)实例代码

    这篇文章主要介绍了JS实现分页浏览横向图片(类轮播)实例代码,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • js实现一键复制功能

    js实现一键复制功能

    本文主要介绍了js实现一键复制功能的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03

最新评论