JS中數組的循環:map, some, every, forEach,each


~ 之前對於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]

jQuery有each循環,這個是異步的

$(selector).each(function(index,element){});
var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]      
   $.each(arr, function(i, item){      
        $.each(item,function(j,val){
            alert(j);
            alert(val);
     }); 
});
var obj = { one:1, two:2, three:3};      
   each(obj, function(key, val) {      
        alert(key);   
        alert(val);      
   });   
<input name="aaa" type="hidden" value="111" />
<input name="bbb" type="hidden" value="222" />
<input name="ccc" type="hidden" value="333" />
<input name="ddd" type="hidden"  value="444"/>
然后你使用each如下
 $.each($("input:hidden"), function(i,val){  
     alert(val);
     alert(i);
     alert(val.name);
     alert(val.value);   
 }); 

 

~ 之前對於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 的話,也會跳出循環    }
}); 12345678910111213141516171819202122232425forEach沒有返回值,只針對每個元素調用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;        }    });12345678910111213some 當內部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     });1234567map 有返回值,返回一個新的數組,每個元素為調用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]--------------------- 作者:Shuah153 來源:CSDN 原文:https://blog.csdn.net/weixin_36934930/article/details/81061063 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM