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

相关文章

  • 基于javascript的在火狐里面强制换行字符

    基于javascript的在火狐里面强制换行字符

    火狐也不知道为什么,自己功能上,样式上面,都无法让其强制换行,这里用JS来实现火狐里面强制换行的方法。
    2010-06-06
  • Bootstrap3 图片(响应式图片&图片形状)

    Bootstrap3 图片(响应式图片&图片形状)

    这篇文章主要介绍了 Bootstrap3 图片 响应式图片和图片形状的相关资料,需非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • uni-app微信小程序登录授权的实现

    uni-app微信小程序登录授权的实现

    这篇文章主要介绍了uni-app微信小程序登录授权的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 基于JavaScript canvas绘制贝塞尔曲线

    基于JavaScript canvas绘制贝塞尔曲线

    这篇文章主要为大家详细介绍了基于JavaScript canvas绘制贝塞尔曲线的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 如何用JavaScript检测当前浏览器是无头浏览器

    如何用JavaScript检测当前浏览器是无头浏览器

    这篇文章主要介绍了如何用JavaScript检测当前浏览器是无头浏览器,对无头浏览器感兴趣的同学,可以参考一下
    2021-04-04
  • uni-app打开外部链接方式总结(h5和app)

    uni-app打开外部链接方式总结(h5和app)

    uni-app在app和h5中跳转至外部链接的方式有所不同,需要进行条件编译,下面这篇文章主要给大家介绍了关于uni-app打开外部链接方式(h5和app)的相关资料,文章通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Webstorm2016使用技巧(SVN插件使用)

    Webstorm2016使用技巧(SVN插件使用)

    这篇文章主要介绍了Webstorm2016使用技巧(SVN插件使用),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 微信小程序实现多张图片上传功能

    微信小程序实现多张图片上传功能

    这篇文章主要为大家详细介绍了微信小程序实现多张图片上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • javascript:文字不间断向左移动的实例代码

    javascript:文字不间断向左移动的实例代码

    这篇文章介绍了javascript:文字不间断向左移动的实例代码,有需要的朋友可以参考一下
    2013-08-08
  • 微信小程序tabbar底部导航

    微信小程序tabbar底部导航

    这篇文章主要为大家详细介绍了微信小程序重写tabbar底部导航,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论