注意forEach不能使用return跳出循環(huán)

一直混淆了概念—關(guān)于跳出循環(huán)或終止方法,認(rèn)為一般循環(huán)return就可以終止,踩坑的是for Each使用return就不可以跳出循環(huán)。
for: 最初使用的就是for,可以通過breakreturn跳出,唯一需要注意的是:需要在函數(shù)中使用,否則報錯

image.png

let func = function() {
    let arr = [1, 2, 3, 4]
    for(let i = 0; i < arr.length; i ++) {
       if(i == 1)  return  //可以終止循環(huán) 或break
       console.log(arr[i])
    }
}
// 1

forEach:這個就是使用break報錯,使用return不能跳出循環(huán),自己也踩坑了,去學(xué)習(xí)了下大家解決此問題兩種方式:
1.try...catch捕獲異常實現(xiàn)

try {
    let arr = [1, 2, 3, 4];
    arr.forEach((item, index) => {
        if (item == 2) {
          throw new Error("ending") //報錯,就跳出循環(huán)
        } else {
          console.log(item);
        }
    })
} catch (e) {
    if (e.message == "ending") {
        console.log("結(jié)束了");
    } else {
        console.log(e.message);
   }
}
//1
//結(jié)束了

2.使用everysome代替,前者內(nèi)部return false跳出整個循環(huán),后者內(nèi)部return true跳出整個循環(huán)

let arr = [1, 2, 3, 4]
arr.some(item => {
  if (item == 2) return true
  console.log(item)
})
// 1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容