实现一个无限累加函数续集

it2025-07-30  8

网易面试题: 实现一个无限累加函数: sum(1,2)(3,4)(5)(); 考点: 函数科里化 递归定义出口:

收集参数,根据参数不同的情况采取不同的策略 function curry(fn, ...args1) { return function (...args2) { let allArgs = [...args1, ...args2]; if(args2.length === 0) { // 求和 return fn(...allArgs); } else { // 科利华收集参数 return curry(fn, ...allArgs); } } } function sum(...args) { let res = 0; for(let i of args) { res += i; } return res; } let add = curry(sum); console.log(add(1, 2)(3)(4)(5, 6)(7)());
最新回复(0)