JS數組叠代方法
先說 every()和 some(),它們都用於查詢數組中的項是否滿足某個條件。
every():
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
// 傳入的函數必須對每一項都返回 true 相當於 number裏面的參數都>2 才返回true
some():
var numbers = [1,2,3,4,5,4,3,2,1];
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true
// 傳入的函數有一項>2都返回 true 相當於 number裏面的參數有一個參數>2 返回true
filter():
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]
//它利用指定的函數確定是否在返回的數組中包含某一項。例如,要 返回一個所有數值都大於 2 的數組 相當於過濾 filter就是過濾的意思吧!
map():
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]
map()也返回一個數組,而這個數組的每一項都是在原始數組中的對應項上運行傳入函數的結果。 例如,可以給數組中的每一項乘以 2,然後返回這些乘積組成的數組
forEach():
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
//執行某些操作
});
它只是對數組中的每一項運行傳入的函數。這個方法沒有返回值, 本質上與使用 for 循環叠代數組一樣。
JS數組叠代方法