假设当咱们只需知道某个数组有没有某个属性,若是找到了直接跳出循环,省略掉剩下的循环步骤是较优化的操做,可是for中是能够利用break跳出循环,但break在forEach中无效,那么forEach能不能跳出循环呢?固然是能够。数组
1.正常for循环break跳出循环oop
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; };