ES5爲數組定義了五個迭代方法。每個方法都接受兩個參數,要在每一項上運行的函數和(非必傳)運行該函數的作用域對象。運行的函數上接受三個參數:數組項的值、該項在數組中的位置和數組對象的本身。
- every()
對數組的每一項的執行給定的函數,如果該函數的每一次返回值都是true,則every函數返回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
- filter()
對數組中的每一項執行給定的函數,filter()函數返回入參函數的返回值爲true的項組成的新數組。
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item,index,array)){
return (item > 2);
}
alert (everyResult); // [3,4,5,4,3]
- forEach()
對數組中的每一項執行給定的函數,forEach()函數沒有返回值。
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array)){
//執行某些操作
}
- 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]
- some()
對數組中的每一項運行給定函數,如果該函數對任一項返回true,則返回true。
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