es6 forEach/map循环中断

1.for循环在循环的时候

通过continue中断当次循环

通过break中断整个循环

通过retrun中断函数执行

2.es6的forEach/map循环只能通过return中断当次循环

//目的:数据匹配到了就中断循环
//结果:所有循环都执行了

let data = [1,2,3,4,5,6]
data.forEach((val,index,arr)=>{
    console.log(`当前第${index+1}循环执行了`)
    if(val>3){ //模仿真实场景条件匹配成功条件
        return 
    }
    console.log('val', val)
})

3.解决forEach无法中断循环:抛出异常

try{
    let data = [1,2,3,4,5,6]
    data.forEach((val,index,arr)=>{
        console.log(`当前第${index+1}循环执行了`)
        if(val>3){ //模仿真实场景条件匹配成功条件
            throw new Error();
        }
        console.log('val', val)
    })
}catch(e) {
   
}
console.log("继续执行")

4.思考:抛出错误这种写法不好,当遇到需要终止循环的时候,不应该使用forEach/map;可以使用js的for/for in等;或是es6针对数组的其他方法:

  • Array.prototype.every()
  • Array.prototype.some()
  • Array.prototype.find()
  • Array.prototype.findIndex()

以上方法返回truthy值以确定是否需要进一步的迭代

//1.every:一假即假,true则继续循环,false就不执行循环了
let data = [1,2,3,4,5,6]
data.every((val,index,arr)=>{
   console.log(val)
   return val<3
})
//结果:1 2 3, 并return false


//2.some: 一真即真,false则继续循环,true就不执行循环了
let data = [1,2,3,4,5,6]
data.some((val,index,arr)=>{
   console.log(val)
   return val>3
})
//结果:1 2 3 4, 并return true


//3.find: 找到就返回该值并退出循环
let data = [1,2,3,4,5,6]
data.find((val,index,arr)=>{
   console.log(val)
   return val>3
})
//结果:1 2 3 4, 并return 4

5.参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值