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));
posted @ 2021-07-15 11:16  13522679763-任国强  阅读(80)  评论(0)    收藏  举报