js數組遍歷some,foreach,map,filter,every對比


1. [...].some(ck)函數       ----      某個一個為true,則為true

 

對數組中每個元素執行一次ck函數,知道某個元素返回true,則直接返回true。如果都返回false,則返回false

檢查整個數組中是否有滿足ck函數的元素。

 

var result = [1,5,3,6].some(  (v,i)  =>  (v>10) )      //所有元素都不滿足,返回result = false
var result = [10,5,30,60].some(  (v,i)  =>  (v<10) )      //有一個(多個)滿足,返回result  = true

  

 

 

2.[...].foreach(ck)函數       ----       循環而已

 

每個數組元素都執行一次ck函數,foreach函數無法用break跳出

 

[50, 25, 49].forEach( (v,i) => console.log(v) );
//50     25      49

  

 

 

3.[...].map(ck)函數      ----         返回每個元素返回值的集合

 

每個數組元素都執行一次ck函數,最后返回每次元素執行ck函數后返回值的集合(數組)

 

var newArray = [50,30,40].map( (v,i) => v/10 )       //每個元素除以10,最后返回一個新數組 newArray = [5,3,4]

  

 

 

4.[...].filter(ck)函數      ----        得到返回值為true的元素的集合

 

每個數組元素都執行一次ck函數,最后返回每次元素執行ck函數后返回值的為true的元素集合(數組)

 

var newArray = [50,2,60,4,53,15].filter( (v,i) => (v>10) )   //返回數組中大於10的元素新數組  newArray = [50,60,53,15]

  

 

 

5.[...].every(ck)函數     ----          某一個為false,則返回false            
     

每個數組元素都執行一次ck函數,直到某個元素執行函數ck返回false,則直接返回false,如果全部返回true,則返回true

 

var result = [5,50,35,12,85].every( (v,i) => v<51 )  //返回有一個(多個)大於等於51,則返回 result = false
var result = [5,50,35,12,85].every( (v,i) => v<100 )  //全部大於51,則返回 result = true

 

  

 6.[...].reduce(ck,init)      ----       依次執行ck(prv.next) 


 數組依次執行ck函數。

var result = [0,1,2,3]
restult.reduce((a,b)=> a+b,0)  // 返回 6

 

個人博客 :很多好用的 npm 包 , 可以看看  https://gilea.cn/  

 

github:  https://github.com/longfei59418888/vui   (很不錯的vue2.0組件庫,記得給一個 start,以后有一起討論,各種好組件)


免責聲明!

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



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