ES5为数组定义了5个迭代的方法:
运行的函数会接受三个参数:1)数组项的值 2)该项在数组中的位置 3)数组对象本身。
.every()
对数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
例:
var arr = [1,2,3,4,5,4,3,2,1];
var num = arr.every(function(item,index,array){
return (item > 2);
})
console.log(num); //false
.some()
对数组的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
例:
var arr = [1,2,3,4,5,6,7,8];
var num = arr.some(function(item,index,array){
return (item > 2);
})
console.log(num); //true
.filter()
对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。
例:
var arr= [1,2,3,4,5,4,3,6,1];
var num= arr.filter(function(item,index,array){
return (item > 3);
})
console.log(filterResult); //[4,5,4,6]
·map()
对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。
例:
var arr = [1,2,3,4,5,6,7,8];
var num = arr.map(function(item,index,array){
return item*2;
})
console.log(num); //[2,4,6,8,10,12,14,16]
·forEach()
对数组的每一项运行给定函数。该方法没有返回值。
var arr = [1,2,3,4,5,6,7,8];
var num = arr.forEach(function(item,index,array){
console.log(item*2); //[2,4,6,8,10,12,14,16]
})
console.log(num); //undefined
归并方法
·reduce() 是从数组的第一项开始,逐个遍历到最后。
·reduceRight() 是从数组的最后一项开始,逐个遍历到最前。
这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。
传给这两个方法的函数接收4个参数:1)前一个值 2)当前值 3)项的索引 4)数组对象
例:
var values = [3,6,5,2,4,2];
var sum = values.reduce(function(prev,cur,index,array){
return prev + cur; //3+6=9+5=14+2=16+4=20+2=22
});
console.log(sum); //22