在我們日常的編碼中,對數組的操作的頻率很高,其中涉及到數組的迭代也很多。所謂的迭代,就是對數組的每一項都進行相應的操作。
下面介紹數組迭代中的五個方法every,some,filter,map,foreach。
1、every方法
every方法接收兩個參數,第一個參數是每個數據項都要執行的函數和運行該函數的作用域對象(可選),其中數據項執行的函數接收三個參數,第一個是當前數據項,第二個是當前收銀值,第三個是數組本身。如果每個數據項都返回true,則every方法返回true,否則返回false。如下:
1 let a=[1,2,3,4,5,6]; 2 var result=a.every(function(item,index,array){ 3 return item>2; 4 }) 5 console.log(result); //false
2、some方法
some方法接收兩個參數,第一個參數是每個數據項都要執行的函數和運行該函數的作用域對象(可選),其中數據項執行的函數接收三個參數,第一個是當前數據項,第二個是當前收銀值,第三個是數組本身。如果有一個數據項返回true,則some方法返回true,否則返回false。如下:
1 let a=[1,2,3,4,5,6]; 2 var result=a.some(function(item,index,array){ 3 return item>2; 4 }) 5 console.log(result); //true
3、filter方法
filter方法接收兩個參數,第一個參數是每個數據項都要執行的函數和運行該函數的作用域對象(可選),其中數據項執行的函數接收三個參數,第一個是當前數據項,第二個是當前收銀值,第三個是數組本身。filter方法返回所有返回true的數據項組成的新數組。如下:
1 let a=[1,2,3,4,5,6]; 2 var result=a.filter(function(item,index,array){ 3 return item>2; 4 }) 5 console.log(result); //[3,4,5,6]
4、forEach方法
forEach方法接收兩個參數,第一個參數是每個數據項都要執行的函數和運行該函數的作用域對象(可選),其中數據項執行的函數接收三個參數,第一個是當前數據項,第二個是當前收銀值,第三個是數組本身。forEach方法不返回值,跟for循環一樣,可以在forEach中進行一些操作
1 let a=[1,2,3,4,5,6]; 2 var result=a.forEach(function(item,index,array){ 3 //一些操作 4 }
5、map方法
map方法接收兩個參數,第一個參數是每個數據項都要執行的函數和運行該函數的作用域對象(可選),其中數據項執行的函數接收三個參數,第一個是當前數據項,第二個是當前收銀值,第三個是數組本身。map方法返回每個數據項經過相應的操作后組成的新數組。如下:
1 let a=[1,2,3,4,5,6]; 2 var result=a.map(function(item,index,array){ 3 return item*2; 4 }) 5 console.log(result); //[2,4,6,8,10,12]