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

huyouooo
35 声望0 粉丝