Vue進階(幺零七):JS中arr.forEach()跳出循環

我們都知道for循環裏要跳出整個循環是使用break,但在數組中用forEach循環如要退出整個循環呢?使用break會報錯,使用return也不能跳出循環。

使用break將會報錯:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
if(v == num) {
break;
}
console.log(v);
});

使用return也不能跳出整個循環:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
if(v == num) {
return;
}
console.log(v);
});

那麼在用forEach()遍歷數組時要如何才能跳出循環呢?經過查找資料後,我找到了兩種方法可以實現跳出循環。

第一種:使用try···catch捕獲異常實現

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{
		log(item);
	}
})
}catch(e){
	if(e.message == "ending"){
		log("結束了") ;
	}else{
		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;
	}
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章