let arr = ['1','2','3','4'];
arr.forEach((item) => {console.log("foreach",item);
if (item === '2') {return ;}
});
预期只打印 1,2 然而 1,2,3,4 都打印进去了 并没有达到预期成果。
for (let i = 0; i < 4; i++) {console.log("arr",arr[i]);
if (arr[i] === '2') {return ;}
}
/
for 循环则只打印了 1,2 达到了预期
发现 foreach 无奈中断,其实,在 foreach 外面 return(不论 true false)相当于 continue
解决形式:
1. 应用 some 或者 every 代替 forEach
let flag = arr.some((item) => {console.log("arr",item);
if (item === '2') {return true;}
});
console.log(flag);
/*
*arr 1
*arr 2
*true
*/