
接受一個收斂函數(shù)和一個分支函數(shù)列表,并返回一個函數(shù),該函數(shù)將每個分支函數(shù)應(yīng)用于參數(shù),分支函數(shù)的結(jié)果作為參數(shù)傳遞給收斂函數(shù)。
使用Array.prototype.map()和Function.prototype.apply()將每個函數(shù)應(yīng)用于給定的參數(shù)。
使用擴展運算符 (?...) 調(diào)用converger方法處理所有其他函數(shù)的結(jié)果。
JavaScript
const converge = (converger, fns) => (...args) =>
? converger(...fns.map(fn => fn.apply(null, args)));
示例代碼:
constaverage=converge((a,b)=>a/b, [arr=>arr.reduce((a,v)=>a+v,0),arr=>arr.length]);average([1,2,3,4,5,6,7]);// 4
更多內(nèi)容請訪問我的網(wǎng)站:https://www.icoderoad.com