首页 > 解决方案 > 在javascript中找到给定函数调用的总和

问题描述

总和(2)(3)(4)....(n)

找到以 number 作为参数提供的 n 个 paranthas 的总和

我努力了

function sum (a){
    return function (b){
        return (a+b)
    }
}

标签: javascript

解决方案


(我必须喷射,稍后会添加解释)。但简而言之:

  • 只要您有参数,您就会返回一个函数,该函数将总和保持在其中并不断添加每个参数。我作弊并覆盖toString函数以输出sum.
  • 目前我认为不需要的快速方法toString是只使用空参数执行函数,然后不返回函数而是返回sum值。

坏事?好吧,覆盖toStringconsole.log()可能会混淆用户,因为返回的实际类型是函数而不是数字。

var string_sum = sum(1)(1)(1);
console.log( string_sum + "  of type " + typeof(string_sum) );
var num_sum = sum(1)(1)(1)(1)(1)(1)();
console.log( num_sum + " of type " + typeof(num_sum) );

function sum(x) {
  var sum = x;

  var sum_closure = function s(y){
     if ( y != undefined ){
      sum += y;
      return s;
     } else
      return sum;
  };
    
  if( ! Number.isInteger(sum_closure) )  
    Object.defineProperty(sum_closure, 'toString', {
          value: function () {
              return sum;
          }
      });
  
  return sum_closure;
}


推荐阅读