發現foreach時使用break或return無法跳出循環。經過查閱資料,發現兩種方法可以跳出循環,在此記錄
方法一:使用try{...}catch(e){...}
try{
var array = ["first","second","third","fourth"];
array.forEach(function(item,index){
if(item == "third"){
var a = aaaa;// first second 后就報錯,就跳出循環了
throw new Error("ending");//報錯,就跳出循環
}else{
console.log(item);
}
})
}catch(e){
if(e.message == "ending"){
console.log("結束了") ;
}else{
console.log(e.message);
}
}
方法二:使用arr.some()或者arr.every()替代
some()當內部return true時跳出整個循環:
var arr = [1,2,3,4,5];
var num = 3;
arr.some(function(v){
if(v == num) {
return true;
}
console.log(v);
});
every()當內部return false時跳出整個循環
var arr = [1,2,3,4,5];
var num = 3;
arr.every(function(v){
if(v == num) {
return false;
}else{
console.log(v);
return true;
}
});
