compose 组合函数
/**
* compose 组合函数
* */
const add1 = (x) => x + 1;
const mul3 = (x) => x * 3;
const div2 = (x) => x / 2;
// funs:按照管道的顺序依次存储着要处理的函数
const compose = (...funcs) => {
// console.log(funs); [ƒ, ƒ, ƒ]
return x =>{
let len = funcs.length
if(len === 0) return x;
if(len === 1) return funcs[0](x);
return funcs.reduceRight((result,item)=>{
return item(result)
},x)
}
}
const operate = compose(div2,mul3,add1,add1)
console.log(operate(0));
console.log(operate(2));
console.log(compose()(10));
我是Eric,手机号是13522679763

浙公网安备 33010602011771号