数组跳出循环方法

  在for循环中想要跳出整个循环使用break;但是在forEach中使用break不仅不能调出整个循环,还会报错,使用return也不行。

// for循环跳出
for (var i = 0; i < 5; i++){
    console.log(i);
    if(i == 3){// 当i=3时,跳出循环
        break;
    }
}
/*	控制台输出
	log: 0
	log: 1
	log: 2
	log: 3
*/

// forEach使用break跳出(报错)
[1,2,3,4,5,6].forEach(item=>{
	console.log(item);
    if(item == 4) break;
})
/*
	控制台报错:Uncaught SyntaxError: Illegal break statement
*/

// forEach使用return跳出(无效)
[1,2,3,4,5,6].forEach(item=>{
    console.log(item);
    if(item == 4) return;
})
/*	控制台输出
	log: 1
	log: 2
	log: 3
	log: 4
	log: 5
	log: 6
*/

一、try…catch配合throw跳出循环

// 当符合某一条件时,提出错误,try...catch捕获到之后,forEach将跳出循环
try{
    let list = [1, 2, 3, 4, 5];
    list.forEach(el => {
        console.log(el);
        if(el == 3) {
            throw new Error('finish');
        }
    })
}catch(e) {
	console.log(e.message);
}

/*	控制台输出
	log: 1
	log: 2
	log: 3
	finish
*/

二、every()

语法糖:every()返回一个boolean,判断每个元素是否符合func条件。数组里面所有的元素都符合才返回true。
  当条件满足时使用return false 跳出循环,其余不符合条件时需要使用return true 继续循环。

    let list = [1, 2, 3, 4, 5];
    list.every(el => {
        if(el == 3) {
            console.log(el);
            return false;
        }else {
            console.log(el);
            return true;
        }
    })
/*	控制台输出
	log: 1
	log: 2
	log: 3
*/

三、some()

语法糖:some()返回一个boolean,判断是否有元素是否符合func条件。数组里面所有的元素有一个符合条件就返回true。
  当条件满足时使用return true 跳出循环,否则一直循环到结束。

let list = [1, 2, 3, 4, 5];
    list.some(el => {
        console.log(el);
        if(el == 3) {
            return true;
        }
    })
/*	控制台输出
	log: 1
	log: 2
	log: 3
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值