美文网首页
注意forEach不能使用return跳出循环

注意forEach不能使用return跳出循环

作者: krystal_H | 来源:发表于2019-12-31 14:54 被阅读0次

一直混淆了概念—关于跳出循环或终止方法,认为一般循环return就可以终止,踩坑的是for Each使用return就不可以跳出循环
for: 最初使用的就是for,可以通过breakreturn跳出,唯一需要注意的是:需要在函数中使用,否则报错

image.png
let func = function() {
    let arr = [1, 2, 3, 4]
    for(let i = 0; i < arr.length; i ++) {
       if(i == 1)  return  //可以终止循环 或break
       console.log(arr[i])
    }
}
// 1

forEach:这个就是使用break报错,使用return不能跳出循环,自己也踩坑了,去学习了下大家解决此问题两种方式:
1.try...catch捕获异常实现

try {
    let arr = [1, 2, 3, 4];
    arr.forEach((item, index) => {
        if (item == 2) {
          throw new Error("ending") //报错,就跳出循环
        } else {
          console.log(item);
        }
    })
} catch (e) {
    if (e.message == "ending") {
        console.log("结束了");
    } else {
        console.log(e.message);
   }
}
//1
//结束了

2.使用everysome代替,前者内部return false跳出整个循环,后者内部return true跳出整个循环

let arr = [1, 2, 3, 4]
arr.some(item => {
  if (item == 2) return true
  console.log(item)
})
// 1

相关文章

网友评论

      本文标题:注意forEach不能使用return跳出循环

      本文链接:https://www.haomeiwen.com/subject/gspboctx.html