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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值