想看大家做这道题的答案
用 JavaScript 实现一个 add(1,2,3)(4)(5)(6,7)(8)()
返回结果为这些数字的和:36 。
返回结果为这些数字的和:36 。
return function () {
nums = nums.concat(Array.from(_args));
if (arguments.length <= 0) {
return nums.reduce(function (prev, cur) {
return prev + cur;
}, 0);
}
return arguments.callee;
};
}
add(1, 2, 3)(4)(5)(6, 7)(8)()
正确代码应该是:
function add() {
let nums = Array.from(arguments);
return function () {
nums = nums.concat(Array.from(arguments));
if (arguments.length <= 0) {
return nums.reduce(function (prev, cur) {
return prev + cur;
}, 0);
}
return arguments.callee;
};
}
add(1, 2, 3)(4)(5)(6, 7)(8)()
https://gist.github.com/Elethom/185f504e268b9b77f7c2280a5540d453
console.log(infiniteAdd(1, 2, 3)(4, 5)(6)(7, 8, 9, 10)(11, 12)()); // 78
“`
const add = curry(addOriginal)