实现如下函数 add,不限制输入参数数量以及调用次数,要求在传参为空时输出计算结果
add(1,2,3)(1)(2)(3)(4,5,6)(7,8)() 其输出结果为 42
function sumValue(args) {
return args.reduce((acc, cur) => {
return acc + cur
}, 0)
}
function add(...args) {
let sum = sumValue(args)
return function fn(...params) {
if (params.length > 0) {
sum += sumValue(params)
return fn
} else {
return sum
}
}
}
let res = add(1, 2, 3)(1)(2)(3)(4, 5, 6)(7, 8)(10)()
console.log(res)