一些ES5的操做數組的方法

在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用法基本一致,不一樣點在於全部操做都是從右向左進行,在某些肯定優先級的狀況下會有不一樣

相關文章
相關標籤/搜索