JS数组迭代方法

时间:2021-08-17 22:02:02

先说 every()和 some(),它们都用于查询数组中的项是否满足某个条件。

every()

var numbers = [1,2,3,4,5,4,3,2,1];
 var everyResult = numbers.every(function(item, index, array){
 return (item > 2);
 });

 alert(everyResult); //false

// 传入的函数必须对每一项都返回 true 相当于 number里面的参数都>2 才返回true

some():

var numbers = [1,2,3,4,5,4,3,2,1];

var someResult = numbers.some(function(item, index, array){
 return (item > 2);
 });

 alert(someResult); //true
// 传入的函数有一项>2都返回 true 相当于 number里面的参数有一个参数>2 返回true


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]

//它利用指定的函数确定是否在返回的数组中包含某一项。例如,要 返回一个所有数值都大于 2 的数组  相当于过滤 filter就是过滤的意思吧!


 

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]

map()也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。 例如,可以给数组中的每一项乘以 2,然后返回这些乘积组成的数组


 

forEach():

var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
//执行某些操作
});

它只是对数组中的每一项运行传入的函数。这个方法没有返回值, 本质上与使用 for 循环迭代数组一样。