js跳出forEach循環的騷姿勢


在forEach中,不能使用 continue 和 break ,可以使用 return 或 return false 可中止本次執行,效果與 for 中 continue 一樣。但無法一次結束所有循環。
forEach 只能通過 throw err 才可以~當然這個是使程序中斷-算跳出 嚴格意義上說 map forEach 他們本身屬於迭代行為 就不支持跳出的。

1.使用try catch 跳出forEach循環

try {
var array = [1,2,3,4,5,6];
// 執行到第3次,結束循環
array.forEach((value)=>{
console.log("value---->",value);
if(value > 3){
throw new Error("拋出異常跳出")
}
});
} catch(e) {
console.log(e)
};
復制代碼本來就想記錄一下這個的--想想還是補充一下其他的循環

2. 跳出for循環(沒有return方法)

break 跳出所有循環

for(var i=1;i<=10;i++) {
if(i==8) { //等於8跳出
break;
}
console.log(i)
}
復制代碼
continue 跳出當前循環,進入新的循環

for(var i=1;i<=10;i++) {
if(i==8) { //等於8跳出
continue;
}
console.log(i)
}
復制代碼##2.1.跳出 for in 循環(使用break)
let arr = [1,2,3,4,5,6]
for (let i in arr){
if(i > 3) {
break
}
console.log(arr[i]) //1 2 3 4
}

復制代碼##3. every 當內部return false時跳出整個循環
這個方法 說實在的我很少用 0-0 需要注意的是 every雖然通過return false 可以跳出循環,但是循環里面你還是要寫return true 讓他持續循環 不然就只執行一次
//every()當內部return false時跳出整個循環
let list = [1, 2, 3, 4, 5];
list.every((value, index) => {
if(value > 3){
console.log(value)
return false;
}else{
console.log(value)
return true; //當然這邊如果你不寫這一行 她也會跳出的 就是上面說的 return true 為了讓他進入下一次勛魂
}

});
復制代碼##4. some 當內部return true時跳出整個循環
注意:return true 跳出整個循環 。 如果return false 跳出本次循環 和上面for break和continue方法相似
let list3 = [1, 2, 3, 4, 5];
list3.some((value, index) => {
if(value === 3){
return true;//當內部return true時跳出整個循環
}
console.log(value)// 1 2
});
復制代碼##5. ES6中 for of 跳出循環(使用break)
let arr = [1,2,3,4,5]
for (val of arr) {
if(val > 3 ){
break;
}
console.log("val===>",val) //1 23
}

作者:小人頭
鏈接:https://juejin.cn/post/6844904040938078221
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM