乐趣区

关于前端:foreach中的return

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
 */
退出移动版