js 陣列迭代方法,歸併方法
1.js 提供了一些迭代的方法,包括every,some,filter,map,forEach.
every():對陣列中的每一項執行給定函式,如果該函式對每一項都返回true,則返回true。
filter():對陣列中的每一項執行給定函式,返回該函式會返回true 的項組成的陣列。
forEach():對陣列中的每一項執行給定函式。這個方法沒有返回值。
map():對陣列中的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。
some():對陣列中的每一項執行給定函式,如果該函式對任一項返回true,則返回true.
every主要是用於判斷一個素組中的值是否符合某個標準。必須是每個值都符合才會返回true。否則返回false.
而some()函式只需要有一個值返回的是true就會返回true.
例子如下:
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
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true
2.filter,filter返回的是一個符合某種條件的陣列。
例如:陣列number = [1,2,1,3,5,3,4,9,6,9];
var result = number.filter(function(item,index,array){
return (item>5);
});
alert(result); /[9,6,9];
3.map,map和filter函式類似,同樣是hi返回的是一個數組。不過,這個陣列的每一項都是在原始陣列中的對應項上執行傳入函式的結果。例如:
var numbers = [1,2,3,4,5,6,7];
var mapresult = numbers.map(function(item,index,array){
return item*2;
});
alert(mapresult);//[2,4,6,8,10,12,14];
**4.**forEach()
顧名思義,是一個迴圈陣列的方法。
5.歸併
5.1reduce(),reduceRight()。
迭代i陣列中的所有值,返回一個按條件計算的最終值。
reduce是從陣列的逐個遍歷
到最後。而reduceRight()則從陣列的最後一項開始,向前遍歷到第一項。
例如:
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15
第一次執行回撥函式,prev 是1,cur 是2。第二次,prev 是3(1 加2 的結果),cur 是3(陣列
的第三項)。這個過程會持續到把陣列中的每一項都訪問一遍,最後返回結果。
resuceRight()函式和reduce類似,不過是倒序。