什麼是 reduce,什麼是聚合函式
阿新 • • 發佈:2020-10-27
什麼是 reduce
reduce() 方法對陣列中的每個元素執行一個由您提供的reducer函式(升序執行),將其結果彙總為單個返回值
const array1 = [1, 2, 3, 4]; const reducer = (accumulator, currentValue) => accumulator + currentValue; // 1 + 2 + 3 + 4 console.log(array1.reduce(reducer)); // expected output: 10 // 5 + 1 + 2 + 3 + 4 console.log(array1.reduce(reducer, 5)); // expected output: 15
什麼是聚合函式
如下函式,聚合成一個函式,並把第一個函式的返回值傳遞給下一個函式。
function f1(arg) { console.log("f1", arg); return arg; } function f2(arg) { console.log("f2", arg); return arg; } function f3(arg) { console.log("f3", arg); return arg; } // 方法1: let res = f1(f2(f3('name'))) console.log('res', res) // 結果: // f3 name // f2 name // f1 name // res name // 方法2: let res = compose(f1, f2, f3)('name') console.log('res', res) // 結果: // f3 name // f2 name // f1 name // res name function compose(...funcs) { // 處理如果沒有傳遞引數 if(funcs.length === 0) return arg => arg return funcs.reduce((a, b) => (...args) => a(b(...args))) }