国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript使用類似break機制中斷forEach循環的方法

2019-11-19 12:31:36
字體:
來源:轉載
供稿:網友

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循環的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄垣县| 房山区| 巧家县| 绿春县| 吴旗县| 松滋市| 吉林市| 新郑市| 房产| 临潭县| 苍南县| 蕉岭县| 怀化市| 龙门县| 海安县| 承德市| 广宗县| SHOW| 保山市| 怀柔区| 铜陵市| 策勒县| 辽宁省| 耒阳市| 太原市| 卓资县| 淮安市| 石景山区| 巴彦淖尔市| 铁岭市| 左权县| 同仁县| 自贡市| 蒙城县| 河北省| 庐江县| 罗定市| 玉树县| 南投县| 灵寿县| 阿图什市|