forEach和for如何跳出循环

for

continue语句

概述: continue 语句结束当前(或标签)的循环语句的本次迭代,并继续执行循环的下一次迭代。
注意:
与 break 语句的区别在于, continue 并不会终止循环的迭代,而是:
在 while 循环中,控制流跳转回条件判断;
在 for 循环中,控制流跳转到更新语句。
continue 语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代,而非当前循环。此时要求 continue 语句在对应的循环内部。(摘自MDN)

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。

for (let i = 0; i < arr.length; i++) {
    if (i === 2) {
        continue
    }
    console.log('for===', arr[i])
}

// 结果
// for===continue 1
// for===continue 2
// for===continue 4
// for===continue 5

双层for循环中内层用continue

 for (let i = 0; i < 10; i += 1) {
      for (let j = 0; j < 5; j += 1) {
        if (j === 5) {
          continue;
        }
        console.log(`当前j:${j}`);
      }
      console.log(`当前i:${i}`);
 }

break语句

break 语句可用于跳出循环

for (let i = 0; i < arr.length; i++) {
    if (i === 2) {
        break
    }
    console.log('for===break', arr[i])
}

// 结果
// for===break 1
// for===break 2

双层for循环中内层用break

 for (let i = 0; i < 10; i += 1) {
      for (let j = 0; j < 5; j += 1) {
        if (j === 3) {
          break;
        }
        console.log(`当前j:${j}`);
      }
      console.log(`当前i:${i}`);
 }

结论:break用于双层forEach中是跳出内层循环,继续外层的下一次循环。

forEach

注意: 没有办法中止或者跳出 forEach 循环,除了抛出一个异常。如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环作为替代。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 Array.every 或 Array.some。如果可用,新方法 find() 或者findIndex() 也可被用于真值测试的提早终止。(摘自MDN)

forEach中不能使用 continuebreak

return语句

forEach中使用 return 语句的作用只能跳出当前循环,并不能跳出整个循环。

arr.forEach((a, i) => {
    if (i === 2) {
        return
    }
    console.log('forEach===return', a)
})

// 结果
// forEach===return 1
// forEach===return 2
// forEach===return 4
// forEach===return 5

如果需要跳出整个循环,需要throw抛异常,如下

try {
    arr.forEach((a, i) => {
        if (i === 2) {
            throw new Error()
        }
        console.log('forEach===throw', a)
    })
} catch (e) {
    console.log(e)
}

return是用于函数中的哦,for语句中不能使用return哦

链接: 参考链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值