##語法數組
/* * @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]