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
*/