reduce() 方法接收一個函數做爲累加器,數組中的每一個值(從左到右)開始縮減,最終爲一個值,是ES5中新增的又一個數組逐項處理方法,那reduce方法跟foreach、map等數組方法又有啥區別呢。javascript
arr.reduce(callback[, initialValue]) —More From MDNjava
拋開上面晦澀難懂的語法介紹,下面咱們直接上實例:數組
數組 arr = [1,2,3,4] 求數組的和函數
forEach 實現spa
var arr = [1,2,3,4], sum = 0; arr.forEach(function(e){sum += e;}); // sum = 10 just for demo
map 實現設計
var arr = [1,2,3,4], sum = 0; arr.map(function(obj){sum += obj});//return undefined array. sum = 10 just for demo
reduce實現code
var arr = [1,2,3,4]; arr.reduce(function(pre,cur){return pre + cur}); // return 10
沒錯,reduce 專爲累加這種操做而設計,爲累加這類操做而設計的參數,十分方便。
那麼問題來了,reduce方法的參數到底有哪些用法呢
對象
Object.assign()
方法用於將全部可枚舉的屬性的值從一個或多個源對象複製到目標對象。它將返回目標對象。ip
Object.assign(target, ...sources)
target
get
目標對象。
sources
(多個)源對象。
目標對象。
var obj = { a: 1 }; var copy = Object.assign({}, obj); console.log(copy); // { a: 1 }