js数组Array对象为我们提供了一些数组遍历的方法,这些方法有各自的作用,也分别适用于不同的场景。
Array对象上的五中遍历方法如下:
every():对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true;
some():对数组中的每一项运行给定的函数,如果该函数对只要其中一项返回true,则返回true;
filter():对数组中的每一项运行给定的函数,则返回该函数会返回true的项所组成的新的数组;
map():对数组中的每一项运行给定的函数,则返回每次函数调用的结果所组成的新的数组;
forEach():对数组中的每一项运行给定的函数,这个方法没有返回值,最终会改变原有的数组为一个新的数组;
(1) every()和some()返回的是布尔值,可以用来判断数组是否满足某个条件;例如:
var arr = [1,2,3,4,5];
var resEvery = arr.every(function(item,index,arr){
return (item>2);
});
console.log(resEvery); // false
var arr = [1,2,3,4,5];
var resSome = arr.every(function(item,index,arr){
return (item>2);
});
console.log(resSome); // true
(2) filter主要用来删选符合条件的数据,最终返回一个新的数组,例如:
var arr = [1,2,3,4,5];
var res = arr.filter(function(item,index,arr){
return (item>2);
});
console.log(res ); // [3,4,5]
(3) map()和forEach()都是对数组中的每一项进行处理,区别在于map()会返回一个新的数组,而forEach()则不能返回结果,而是直接改变原来的数组,例如:
var arr = [1,2,3,4,5];
var res = arr.map(function(item,index,arr){
return item*2;
});
console.log(res);// [2,4,6,8,10]
console.log(arr); // [1,2,3,4,5]
arr.forEach(function(item,index,arr){
item*2
});
console.log(arr);// [2,4,6,8,10]