浅谈原生js的五个数组迭代方法
ES5为数组定义了5个迭代方法,每个方法都接收两个参数:(1)在每一项上执行的函数(2)运行该函数的作用域对象,影响this的值(可选)
传入这些迭代方法的函数会接受三个参数,数组项的值、该项在数组中的位置和数组对象本身,以下方法都不会修改数组中包含的值
——《JavaScript高级程序设计》
every( )
对数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
var num=[1,2,3];
var result=num.every(function(item,index,array){
return (item>0);
});
alert(result); //true
some( )
对数组的每一项运行给定函数,如果该函数对任意一项返回true,则返回true
var num=[1,2,3];
var result=num.some(function(item,index,array){
return (item>2);
});
alert(result); //true
filter( )
对数组的每一项运行给定函数,返回该函数返回true的项组成的数组
var num=[1,2,3];
var result=num.filter(function(item,index,array){
return (item>1);
});
alert(result); //[2,3]
map( )
对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组
var num=[1,2,3];
var result=num.map(function(item,index,array){
return (item+1);
});
alert(result); //[2,3,4]
forEach( )
对数组的每一项运行给定函数,没有返回值
var num=[1,2,3];
var result=num.forEach(function(item,index,array){
//执行某些操作
});