- forEach()
- some()
- every()
- map()
- filter()
上面是數(shù)組的五個迭代方法洋闽,每個方法都接收兩個參數(shù):要在每一項(xiàng)上運(yùn)行的 函數(shù) 和運(yùn)行該函數(shù)的 作用域?qū)ο?/em>(可選的),作用域?qū)ο髮⒂绊憈his的值代乃。傳入這些方法中的函數(shù)會接收三個參數(shù):數(shù)組的項(xiàng)的值、該項(xiàng)在數(shù)組中的位置和數(shù)組對象本身砚偶。
這5種方法都不會改變原數(shù)組的值
forEach()
這個方法沒有返回值瓶珊。它只是對數(shù)組中的每一項(xiàng)運(yùn)行傳入的函數(shù),沒有返回值馆里。本質(zhì)上與使用for循環(huán)迭代數(shù)組一樣。
var numbers=[1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array){
//執(zhí)行某些操作
});
every() 和 some()
every()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)可柿,如果該函數(shù)對每一項(xiàng)都返回true鸠踪,則返回true。
some()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)复斥,如果該函數(shù)對任一項(xiàng)返回true营密,則返回true。
every()和some()很相似目锭,他們都用于查詢數(shù)組中的項(xiàng)是否滿足某個條件评汰,對every()來說,傳入的函數(shù)必須對每一項(xiàng)都返回true痢虹,這個方法才返回true被去;否則,則返回false奖唯。而some()方法則只要傳入的函數(shù)對數(shù)組中的某一項(xiàng)返回true惨缆,就會返回true。例如:
var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function(item,index,array){
return (item>2);
});
console.log(everyResult);//false
var someResult=numbers.some(function(item,index,array){
return (item>2);
});
console.log(someResult);//true
以上代碼調(diào)用了every()和some(),傳入的函數(shù)只要給定項(xiàng)大于2就會返回true丰捷。對于every()坯墨,它返回的是false,因?yàn)橹挥胁糠謹(jǐn)?shù)組符合條件 ; 而對于some()病往,結(jié)果就是true捣染,因?yàn)橹辽儆幸豁?xiàng)是大于2的。
map()
map()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)停巷,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組液斜。這個數(shù)組的每一項(xiàng)都是在原始數(shù)據(jù)中的對應(yīng)項(xiàng)上運(yùn)行傳入函數(shù)的結(jié)果,例如:
var numbers=[1,2,3,4,5,4,3,2,1];
var mapResult=numbers.map(function(item,index,array){
return item*2;
});
console.log(mapResult); //[2,4,6,8,10,8,6,4,2]
以上代碼返回的數(shù)組中包含每個數(shù)乘以2之后的結(jié)果叠穆,這個方法適合創(chuàng)建包含的項(xiàng)與另一個數(shù)組一一對應(yīng)的數(shù)組。
filter()
filter()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)臼膏,返回該函數(shù)會返回true的項(xiàng)所組成的數(shù)組硼被。它利用指定的函數(shù)確定是否在返回的數(shù)組中包含某一項(xiàng)。例如:
var numbers=[1,2,3,4,5,4,3,2,1];
var filterResult=numbers.filter(function(item,index,array){
return (item>2);
});
console.log(filterResult); //[3,4,5,4,3];
此例子中渗磅,傳入的函數(shù)要返回一個所有數(shù)值都大于2的數(shù)組嚷硫,通過調(diào)用filter()方法創(chuàng)建并返回了包含3,4,5,4,3的數(shù)組检访,因?yàn)閭魅氲暮瘮?shù)對它們的每一項(xiàng)都返回true。這個方法對查詢符合某些條件的所有數(shù)組項(xiàng)非常有用仔掸。