##语法数组
/* * @param accumulator 函数传进来的初始值或上一次回调的返回值 * @param currentValue 数组中当前处理的元素值 * @param currentIndex 当前元素索引 * @param arr 当前元素所属的数组自己 * @param initialValue 初始值,能够是数组或者对象,有妙用 */ array.reduce(function(accumulator, currentValue, currentIndex, arr), initialValue)
let ary = [1,2,3,4]; let sum = ary.reduce((a,b) => { return a + b; }) // 10
let car = ['BMW', 'Benz', 'Tesla', 'BMW', 'Toyota']; let obj = car.reduce((a, b) => { a[b] = a[b] ? a[b] + 1 : 1; return a },{}) // obj结果为 { BMW: 2, Benz: 1, Tesla: 1, Toyota: 1 }
let ary = [20,30,60,55,10]; let result = ary.reduce((a,b) => { if(b * 2 > 100) { a.push(b * 2) } return a; }, []); // 结果为[120,110]