ES6數組新增的幾個方法
關於數組中forEach() 、map()、filter()、reduce()、some()、every()的總結
1、forEach()
var arr = [1,2,3,4]; arr.forEach((item,index,arr) => { console.log(item) //結果為1,2,3,4 }) //forEach遍歷數組,無返回值,不改變原數組,僅僅只是遍歷、常用於注冊組件、指令等等。
2、map()
var arr = [1,2,3,4]; arr.map((item,index,arr) => { return item*10 //新數組為10,20,30,40 }) //map遍歷數組,返回一個新數組,不改變原數組的值。
3、filter()
var arr = [1,2,3,4]; arr.filter((item,index,arr) => { return item > 2 //新數組為[3,4] }) //filter過濾掉數組中不滿足條件的值,返回一個新數組,不改變原數組的值。
4、reduce()
var arr = [1,2,3,4]; arr.reduce((result,item,index,arr) => { console.log(result) // 1 3 6 result為上次一計算的結果 console.log(item) // 2 3 4 console.log(index) // 1 2 3 return result+item //最終結果為10 }) //reduce 讓數組的前后兩項進行某種計算。然后返回其值,並繼續計算。不改變原數組,返回計算的最終結果,從數組的第二項開始遍歷。
5、some()
var arr = [1,2,3,4]; arr.some((item,index,arr) => { return item > 3 //結果為true }) //遍歷數組每一項,有一項返回true,則停止遍歷,結果返回true。不改變原數組
6、every()
var arr = [1,2,3,4]; arr.every((item,index,arr) => { return item > 1 //結果為false }) //遍歷數組每一項,每一項返回true,則最終結果為true。當任何一項返回false時,停止遍歷,返回false。不改變原數組
以上6個方法均為ES6語法,IE9及以上才支持。不過可以通過babel轉意支持IE低版本。
以上均不改變原數組。
some、every返回true、false。
map、filter返回一個新數組。
reduce讓數組的前后兩項進行某種計算,返回最終操作的結果。
forEach 無返回值。