echolun

js forEach跳出循环

假设当我们只需知道某个数组有没有某个属性,如果找到了直接跳出循环,省略掉剩下的循环步骤是较优化的操作,但是for中是可以利用break跳出循环,但break在forEach中无效,那么forEach能不能跳出循环呢?当然是可以。

1.正常for循环break跳出循环

let strArr = [\'a\', \'b\', \'c\', \'d\'],
    i = 0,
    length = strArr.length;
for (; i < length; i++) {
    console.log(strArr[i]);//a
    if(arr[i] === \'a\'){
        //do something
    };
    break;
};

2.forEach结合try...catch()可以跳出循环

try {
    var arr = [1, 2, 3, 4];
    arr.forEach(function (item, index) {
        //跳出条件
        if (item === 3) {
            throw new Error("LoopTerminates");
        }
        //do something
        console.log(item);
    });
} catch (e) {
    if (e.message !== "LoopTerminates") throw e;
};

 

分类:

技术点:

相关文章: