ECMAScript5 为数组定义5个迭代方法。每个方法都接收两个参数:要在每一项上运行的函数和运行改函数的作用域对象-影响this的值。传入这些方法中的函数会接收三个参数:数组项的值(item)、该项在数组中的位置(index)和数组对象本身(array)。
以下方法都不会修改数组中包含的值
every()
- 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function (item,index,array) {
return (item>2);
})
alert("everyResult: "+everyResult);//false
some()
- 对数组中的每一项运行给定函数,如果该函数对任一项都返回true,则返回true。
var someResult=numbers.some(function (item,index,array) {
return (item>2);
})
alert("someResult: "+someResult);//ture
filter()
- 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
//filter
var filterResult=numbers.filter(function (item,index,array) {
return (item>2);
})
alert("filterResult: "+filterResult);//3,4,5,4,3
map()
- 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
var mapResult=numbers.map(function (item,index,array) {
return (item*2);
})
alert("mapResult: "+mapResult);//2,4,6,8,10,8,6,4,2
forEach()
- 对数组中的每一项运行给定函数,这个方法没有返回值
numbers.forEach(function (item,index,array) {
alert(item)
})