是否需要创建一个与递归调用(例如(1)(2)(3)(4))和多个参数(例如(1,2,3,4))一起使用的求和函数?
像这样:
sum(5, 5) // 10
sum(5)(5) // 10
谢谢。
答案 0 :(得分:0)
参考:https://codeburst.io/perpetual-currying-in-javascript-5ae1c749adc5
感谢Param Singh,他想出了一个很好的解决方案来解决可变参数的无限变迁问题
function callFun(fn){
const doTo = (args) => args.reduce((acc, a) => fn.call(fn, acc, a))
const next =(...args)=>{
return (...innerArg)=> {
if(innerArg.length){
return next(...args, doTo(innerArg))
}else{
return doTo(args)
}
}
}
return next()
}
const sum = callFun((a,b) => a + b)
console.log(sum(1)(2)(3,2,1)())