是否有可能实现一个万能的add函数
来源:14-1 课程导学
李行知
2019-01-11
设计一个函数add
可以做到
add(1,2,3,4)(1,2,3,4)
add(1,2,3)(1,2,3)(1,2,3)
也就是
add(...)...(...)
的函数出来?
不过我自己的感觉是不可能实现这个样子的函数。
因为总要有个手段可以进行退出
最多可能做到下面这两种实现
const add = (...arg) => {
if (arg.length === 0) {
return 0
}
if (arg.length === 1) {
return add
}
return arg.reduce((total, num) => total + num)
}
console.log(
add(1)(2)(3)(4, 5, 6)
);
const addEmply = (...arg) => {
if (arg.length === 0) {
return 0
}
return (...arg2) => arg2.length === 0 ?
arg.reduce((total, num) => total + num) : addEmply(...arg, ...arg2)
}
console.log(
addEmply(1, 2, 3)(1, 2, 3, 4)(1,2,4,5)()
)
求解
写回答
1回答
-
Rosen
2019-01-13
设计这个函数的初衷是什么?
012019-01-13
相似问题