美文网首页
注意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