具體要求如下:
// 第一種,思路,這樣一個函式就可以了
function sum(...arr) {
let num = arr.reduce((pre, cur) => {
return pre + cur;
}, 0);
function suum(...arg) {
const y = arg.reduce((pre, cur) => {
return pre + cur;
}, 0)
num += y;
return suum;
}
suum.valueOf = () => {
return num;
}
return suum;
}
// sum(1,2)(3,4)(9)
// 第二種,程式碼最少解,但是多了一個全域性變數
let num = 0;
function sum(...arr) {
num += arr.reduce((pre, cur) => {
return pre + cur;
}, 0);
sum.valueOf = () => {
return num;
}
return sum;
}複製程式碼
目前只能想到這兩個解法,一直想要一個解法,類似第二種遞迴方式,但是不要開頭的全域性變數let num,拋磚引玉,請大神指點