JS如何终止forEach循环

在JavaScript中,forEach循环不能直接使用break或return跳出。解决方法包括使用try...catch捕获异常或利用arr.some()、arr.every()。some()在内部返回true时结束循环,every()则在内部返回false时停止。
摘要由CSDN通过智能技术生成

我们都知道for循环里要跳出整个循环是使用 break,但在数组中用forEach循环如果要退出整个循环使用break或者是return是否可以呢?

#使用break会报错:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
  if(v == num){
    break
  }
  console.log(v);
});

#使用return也不能跳出整个循环:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
  if(v == num){
    return;
  }
  console.log(v);
});

 

 #解决方法:

1.使用 try...catch捕获异常实现:

     try {
            var array = [1, 2, 3, 4, 5];
            array.forEach((item, index) => {
                if (item == 3) {
                    //执行完1 2 之后就报错,就跳出循环了
                    throw new Error("ending"); //报错,就跳出循环
                } else {
                    console.log(item);
                }
            })
        } catch (e) {
            if (e.message == "ending") {
                console.log("结束了");
            } else {
                console.log(e.message);
            }
        };

2.使用arr.some() 或者 arr.every() 替代:

 some()当内部 return true 时跳出整个循环:

var arr = [1,2,3,4,5];
var num = 3;
arr.some(item => {
  if(item == num){
    return true; 
  };
  console.log(item);
}); 

every()当内部 return false 时跳出整个循环:

var arr = [1,2,3,4,5];
var num = 3;
arr.every(item => {
  if(item == num){
    return false;
  }else{
    console.log(item);
  };
});

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值