js foreach与for循环之return跳出循环

因为自己比较大只,容易忘记,仅此用来记录一下~

 各种循环中使用return或者退出循环的机制。

1、forEach 使用 return 可以退出循环吗?下面代码打印啥?

    const list = [1, 2, 3, 4, 5]
    list.forEach(e => {
        if (e === 3) {
            return
        }
        console.log(e, 'each-end')
    })

答案是:

 通过上面的例可以看出,forEach里面return ,只能退出当前forEach回调,无法退出循环。那可能有的小伙伴就会说了,用break呢,现在请记住,forEach里面如果使用 break 则会报错。

那如何是for循环呢?看看下面的列子会运行出什么结果?

运行结果: 

 

由此可见 for 循环里面加 return 是退出函数,如果将 return 换成break,因为break是跳出循环,所以函数内的其他代码还是会执行。

但是值得注意的是,for循环里面加return必须写在函数里面,不然会报错,假设不写在函数里面,那return到哪里去呢,很明显是有问题。

上面代码 return 换成 break 的结果打印:

 那如果一定要在forEach中退出循环呢?别急,也是有办法的。

可以用try...catch实现。

当然,像用some,find,every去代替foreach 退出循环不失为一种更好的方法。 

 some 只要有一项为true,就会跳出循环。

every 只有每一项都返回true,函数返回true ,所以只要有一项不是true就会退出循环。

find 只要找到目标值,就会跳出循环。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值