在ES5規範中新增了很多操做數組的方法,特此羅列一下以備使用數組
1. forEach循環函數
有點相似jQuery的each循環io
[12,23,36,4,5].forEach(function(v,k){console
console.log(v) 獲得元素值, 12,23,36,4,5function
console.log(k) 獲得元素下標 ,0,1,2,3,4循環
})遍歷
方便在不借助三方庫的狀況下遍歷各種數組方法
2.filter過濾器filter
用於篩選元素co
var arr = [12,23,36,4,5].filter(function(x){
return x>10; 此時大於10的元素會經過篩選並存放到一個新的數組,函數結束後返回該數組
});
console.log(arr) 獲得[12,23,36]
3.every匹配
和上面filter的格式類似,可是返回的是一個bool值
若是數組內全部元素均經過篩選,則返回true,不然返回false
4.some匹配
和every匹配相對,只要有一個元素經過了篩選就返回true,一個都沒就返回false
5.reduce組合
組合數組內的元素,進行相關操做
例如,數組求和
var sum = [12,23,36,4,5].reduce(function(x,y){
return x+y;
},0);
最終sum獲得數組內的總和
主要接收一個函數來return 相應的組合操做,而後能夠設置返回值的初始值,此處sum初始值爲0
再來兩個例子更加有助於理解
數組求積
var ji = [12,23,36,4,5].reduce(function(x,y){
return x*y;
},1);
顯然求積,默認初始值就是1而不是0了
求最大值
var max = [12,23,36,4,5].reduce(function(x,y){
return (x>y)?x:y;
});
求最大值不須要初始值,返回的是通過兩兩比較後獲得的最大值
6.reduceRight
和reduce用法基本一致,不一樣點在於全部操做都是從右向左進行,在某些肯定優先級的狀況下會有不一樣