JavaScript中关于forEach() 的跳出循环和终止本次循环!

今天一个后端同事问我关于forEach()如何终止循环的问题(我一个小年轻何德何能替大哥解决问题,心里暗想必须好好表现!),虽然问的我一愣。但我还是毫不犹豫和他说直接return就可以。结果一想不对劲发现好像正常方法不能终止forEach()。于是查询资料有了以下的信息,供大家参考:

1.return语句只能跳出本次循环,执行下一次循环,并不能终止

var arr = [1,2,3,4,5,6] 
arr.forEach((item) => { 
  if (item === 3) { 
    return 
  } 
  console.log(item) 
})
//将输出 1 2 4 5 6,3不会输出

 2.forEach无法通过正常流程(如break)终止循环,但可通过抛出异常的方式实现终止循环

var arr = [1,2,3,4,5,6] 
try{
 arr.forEach((item) => { 
  if (item === 3) { 
    throw new Error('End Loop') } 
    console.log(item) 
  })
 } catch (e) { if(e.message === 'End Loop') throw e }
//将只输出 1 2
//JS中forEach跳出本次循环和终止循环

注意:

        一定不要忘记使用trycatch来捕获,否则不会继续执行下面的代码。这也是同事问我为什么后面不执行了才让我更加注意这些细节的!如果不想看到警告,将if(e.message === ‘End Loop’) throw e这一句加在catch里面。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值