js数组遍历方法的区别

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]

你可能感兴趣的:(js数组遍历方法的区别)