javascript中數(shù)組的五種迭代方法
ES5中為數(shù)組定義了5個(gè)迭代方法只酥。每個(gè)方法接收兩個(gè)參數(shù):要在每一項(xiàng)上運(yùn)行的函數(shù)和運(yùn)行該函數(shù)的作用域(可選)——影響this的值哩罪。傳入這些方法中的函數(shù)會(huì)接收三個(gè)參數(shù):數(shù)組項(xiàng)的值、該項(xiàng)在數(shù)組中的位置锁摔、數(shù)組對(duì)象本身廓旬。
5個(gè)迭代方法(都是對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)):
1.every():每一項(xiàng)都返回true,則返回true谐腰。
2.filter():返回true的項(xiàng)組成的數(shù)組孕豹。
3.forEach():沒有返回值。
4.map():返回調(diào)用函數(shù)的結(jié)果組成的數(shù)組十气。
5.some():任一項(xiàng)返回true励背,則返回true。
every()和some()具有相似性砸西,先對(duì)比兩者:
var numbers=[1,2,3,4,5,4,3,2,1];
//every()
var everyResult =numbers.every(function(item,index,array){
return (item>2);
});
alert(everyResult);//false
//some()
var someResult=numbers.some(function(item,index,array){
return (item>2);
});
alert(someResult);//true
然后再看filter():
//filter
var numbers=[1,2,3,4,5,4,3,2,1];
var filterResult=numbers.filter(function(item,index,array){
return (item>2);
});
alert(filterResult);//[3,4,5,4,3]
map():
//map
var numbers=[1,2,3,4,5,4,3,2,1];
var mapResult=numbers.map(function(item,index,array){
return item*2;
});
alert(mapResult);//[2,4,6,8,10,8,6,4,2]
最后來看forEach()叶眉,本質(zhì)上與使用for循環(huán)迭代數(shù)組一樣:
//forEach
var numbers=[1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array){
//執(zhí)行某些操作
});