面試題,實現一個求和函式

AbleXu發表於2018-11-14

具體要求如下:

面試題,實現一個求和函式

    // 第一種,思路,這樣一個函式就可以了
    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,拋磚引玉,請大神指點


相關文章