关于前端: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
 */

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理