js數(shù)組Array對象為我們提供了一些數(shù)組遍歷的方法匈庭,這些方法有各自的作用,也分別適用于不同的場景。
Array對象上的五中遍歷方法如下:
every():對數(shù)組中的每一項運行給定的函數(shù),如果該函數(shù)對每一項都返回true,則返回true劳较;
some():對數(shù)組中的每一項運行給定的函數(shù)驹止,如果該函數(shù)對只要其中一項返回true,則返回true观蜗;
filter():對數(shù)組中的每一項運行給定的函數(shù)臊恋,則返回該函數(shù)會返回true的項所組成的新的數(shù)組;
map():對數(shù)組中的每一項運行給定的函數(shù)墓捻,則返回每次函數(shù)調(diào)用的結(jié)果所組成的新的數(shù)組捞镰;
forEach():對數(shù)組中的每一項運行給定的函數(shù)毙替,這個方法沒有返回值厂画,最終會改變原有的數(shù)組為一個新的數(shù)組屎慢;
(1) every()和some()返回的是布爾值腻惠,可以用來判斷數(shù)組是否滿足某個條件集灌;例如:
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主要用來刪選符合條件的數(shù)據(jù)欣喧,最終返回一個新的數(shù)組唆阿,例如:
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()都是對數(shù)組中的每一項進行處理驯鳖,區(qū)別在于map()會返回一個新的數(shù)組浅辙,而forEach()則不能返回結(jié)果摔握,而是直接改變原來的數(shù)組氨淌,例如:
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]