讨论/技术交流/各位大佬,我这个JS函数柯里化哪里出问题了,怎么改比较好?/
各位大佬,我这个JS函数柯里化哪里出问题了,怎么改比较好?

如题


function mycurry(fn,...args) {
  return args.length < fn.length ? (...arguments) => {
    // 长度不足时,重新curry化该函数,等待接收新参数
    return mycurry(fn,...args,...arguments);
    //长度满足时,执行函数
  } : fn(...args);
}

我的想法

  • 当参数没传完时,通过...运算符完成对参数的累加,其中args是旧参数,arguments是新参数
  • 当参数足够时执行函数

使用方式

//先定义一个函数
function sumFn(a,b,c){
      return a + b + c;
}
let sum = mycurry(sumFn);
const one = sum(1)
console.log(one)
const two = sum(2);
console.log(two);
const three = sum (3);
console.log(three);

但最后的效果并没有达到,请问各位大佬这里错在哪呢?

共 2 个回复

测试代码写错了

let sum = mycurry(sumFn);
sum = sum(1)
sum = sum(2);
let three = sum (3);
console.log(three); // 6
1

谢谢解答!