1.背景
ES5爲數組新增了幾個方法,包括5個迭代方法和2個歸併方法,使用這些方法可以很優雅地寫一些數組相關的代碼。現在簡單介紹一下這幾個方法。
2.迭代方法
ES5爲數組新增了5個迭代方法:
·every
·some
·filter
·map
·forEach
這幾個方法有一些共同點:
a) 它們的參數都是一個function
b) 它們的參數function的參數都是一樣的:(item, index, array) array就是調用這個方法的數組實例。
那麼我們只需要知道各個方法的含義和返回值這兩個指標就可以知道它們的用法了,下面一一介紹
every 返回值:Boolean;含義:如果數組中每個元素均滿足條件,則返回true,否則返回false。
some 返回值:Boolean;含義:如果數組中有某個元素滿足條件,則返回true,否則返回false。
filter 返回值:Array;含義:返回原數組中滿足條件的元素組成的新數組。
map 返回值:Array;含義:返回原數組的每一項經過map參數指定的函數處理後的新數組。
forEach 返回值:沒有返回值;含義:對數組中的每一項應用forEach參數指定的函數。
3.歸併方法
ES5爲數組增加了2個歸併方法:
·reduce
·reduceRight
它們的含義是相同的,都是對數組元素歸併處理,唯一不同的地方是reduce是從左到右,reduceRight是從右到左。
下面介紹一下reduce方法的用法。
reduce會迭代數組的所有項,然後構建一個最終返回值。它的參數有兩個,第一個參數是一個function,這個function的參數列表爲(pre, cur, index, arr),其中pre爲上次迭代結果,cur爲當前項。第二個參數是初始值。如果不傳這個初始值,那麼第一次迭代的pre是數組的第一項,cur是數組的第二項。如果傳入了這個初始值,那麼第一次迭代的pre是這個初始值,cur是數組的第一項
舉例如下:
[1, 2, 3, 4, 5].reduce(function(pre, cur, index, array) {return pre + cur}); // 15