JS数组的迭代方法有5种,分别是every()、some()、filter()、map()和forEach()。这5种迭代方法我有时候会混淆,于是借这个机会来好好总结一下。
说明:ES5为数组定义了5种迭代方法,每个方法接收2个参数,一个是每一项运行的函数,一个事实运行该函数的作用域对象。传入的函数会接收3个参数:数组项的值、该项下标、数组对象本身。
- every()
作用:对数组中每一项运行给定的函数,如果每一项都返回true,则返回true。
代码段:
//every()
var array=[1,2,3,4,5];
var ret=array.every(function(item,index,array){
//return item >3; //false
return item <8; //true
});
console.log(ret);
- some()
作用:与every()相反。对数组中每一项运行给定的函数,只要其中有一项返回true,则返回true。
代码段:
//some()与every()作用相反
var array=[1,2,3,4,5];
var ret=array.some(function(item,index,array){
//return item >3; //true
return item >8; //false
});
console.log(ret);
- filter()
作用:对数组中的每一项运行给定函数,返回该函数返回true的项组成的 数组。
代码段:
//filter()
var array=[1,2,3,4,5];
var ret=array.filter(function(item,index,array){
return item <8;
});S
console.log(ret); //[1,2,3,4,5]
- map()
作用:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的 数组。
代码段:
//map()
var array=[1,2,3,4,5];
var ret=array.map(function(item,index,array){
//return item >3; //false
return item *2;
});
console.log(ret); //[2,4,6,8,10]
- forEach()
作用:对数组中的每一项运行给定函数,没有返回值。
代码段:
//forEach()
var array=[1,2,3,4,5];
var ret=array.forEach(function(item,index,array){
console.log(array[index]);//[1,2,3,4,5]
});
以上是JS数组的迭代方法总结,希望可以帮到大家!