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 }