for,foreach,$.each()跳出循环的比较
2018-03-11 21:59 溪涵 阅读(967) 评论(0) 编辑 收藏 举报说起跳出循环,第一时间想起的是 break \ continue,这是经典的for循环。
1、for 循环
先上例子,思考输出结果,体会 break 与 continue 的不同。
1 var arr = [1,2,3,4,5,6] 2 var arrySpecial = new Array(); 3 for (var i = 0; i < arr.length; i++){ 4 if(arr[i]%2==0) 5 { 6 arrySpecial.push(arr[i]); 7 continue; 8 } 9 if(arr[i]%3==0) 10 { 11 arrySpecial.push(arr[i]); 12 break; 13 } 14 } 15 16 console.log(arrySpecial);
continue 结束本次循环,继续执行循环体; break 结束所有循环。在本例中当“2”满足条件后,继续进行下一轮判断,当’3‘满足条件后,break 结束所有循环。
2、forEach
这是ECMAScript 5数组的forEach方法 ,作用是遍历数组,常用的写法:
View Code
案例分析:
var arr = [1,2,3,4,5,6] var arrySpecial = new Array(); arr.forEach(function(e,i){ if(e%2==0) { arrySpecial.push(e); return; } if(e%3==0) { arrySpecial.push(e); return; } }) console.log(arrySpecial);
在forEach中,不能使用 continue 和 break ,可以使用 return 或 return false 跳出循环,效果与 for 中 continue 一样。注意该方法无法一次结束所有循环,需要一次性结束所有循环,必须把forEach方法放在一个try块中,并能抛出一个异常。
var arr = [1,2,3,4,5,6] var arrySpecial = new Array(); try { arr.forEach(function(e,i){ if(e%2==0) { arrySpecial.push(e); throw Error(); } if(e%3==0) { arrySpecial.push(e); throw Error(); } }); } catch(e){} console.log(arrySpecial); //输出 [2]
3、$.each()
这是jQuery的方法,用于遍历 DOM时很方便,偷懒必备。
在该方法中,同样是使用 return 或 return false 跳出循环,效果类似 效果与 for 中 break,结束所有循环。
参考:http://www.cnblogs.com/changchengGZ/p/5440704.html