归并函数

@Array
以下为数组的实例方法
reduce()
reduceRight()
.这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项;可以执行求数组中所有值之和的操作
.这两个方法都接收两个参数:一个在每一项上调用的函数fn和(可选的)作为归并基础的初始值
.fn接收 4 个参数:前一个值pre|累加器acc、当前值cur、项的索引index和数组对象array
.可以是普通数组,也可以是数组对象
.map filter是reduce的特例
1.求和
2.计数
3.分类
[] 数组求和
1. 普通数组
let sum = arr.reduce((pre, cur, index, array) => {
    return pre + cur;
})
2. 对象数组 - 具有数值属性 price 和 quantity
let sum = goods.reduce((total, item) => {
  return total + item.price + item.quantity;
}, 0)