最相似的是 every()和 some(),它们都用于查询数组中的项是否满足某个条件。
对 every()来说,传入的函数必须对每一项都返回 true,这个方法才返回 true;否则,它就返回
false。
而 some()方法则是只要传入的函数对数组中的某一项返回 true,就会返回 true。
eg:
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
//every(),传入的函数只要给定项大于 2就会返回 true
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true
//some(),传入的函数至少有一项大于 2 的,就会返回true
filter()函数,它利用指定的函数确定是否在返回的数组中包含某一项,会返回一个数组
eg: 要返回一个所有数值大于2 的数组
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]
通过调用 filter()方法创建并返回了包含 3、4、5、4、3 的数组,因为传入的函数对它们每一项都返回 true。
map()也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。
eg: 给数组中的每一项乘以 2,然后返回这些乘积组成的数组
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]
forEach(),是对数组中的每一项运行传入的函数。这个方法没有返回值,本质上与使用 for 循环迭代数组一样。