JS中的 map, some, every, forEach 用法总结,跳出循环 return false break不起作用

~ 之前对于forEach方法了解的不多,在使用时,突然发现return true fasle break没有反应,仔细一看,还是大有文章,遂记……

当想跳出循环可以使用every 和 some方法,下面是简单的总结

every 当内部return false时跳出整个循环(return true;也是需要写)
//every()当内部return false时跳出整个循环
let list = [1, 2, 3, 4, 5];
list.every((value, index) => {
    if(value > 3){
        console.log(value)// 4
        return false;

    }else{
        console.log(value)// 1 2 3
        return true;
    }

});
list.every((value, index) => {
    if(value > 3){
        console.log(value)
        return false;

    }else{
        console.log(value)// 1
        // return true;
        // 如果没有返回值true 的话,也会跳出循环
    }

}); 
forEach没有返回值,只针对每个元素调用func。
// forEach没有返回值,只针对每个元素调用func。
    let list2 = [1, 2, 3, 4, 5];
    list2.forEach((value, index) => {
        if(value > 3){
            console.log(value)// 4 5
            return false;//没有返回值,ruturn false 仍向下执行

        }else{
            console.log(value)// 1 2 3
            return true;
        }
    });
some 当内部return true时跳出整个循环
    let list3 = [1, 2, 3, 4, 5];
    list3.some((value, index) => {
        if(value === 3){
            return true;//当内部return true时跳出整个循环
        }
        console.log(value)// 1 2 
    });
map 有返回值,返回一个新的数组,每个元素为调用func的结果。
    let list5 = [1, 2, 3, 4, 5];
    let arr = [];
    arr = list5.map((value, index) => {
        return value * 2;
    });
    console.log(arr);//[2, 4, 6, 8, 10]

end

猜你喜欢

转载自blog.csdn.net/weixin_36934930/article/details/81061063
今日推荐