使用JavaScript总结大量数字的最佳方法?

时间:2013-07-27 19:46:16

标签: javascript function

我有大量的变数。计算总和的最正确方法是什么。以下是静态方式。 。如果数字会增加到N倍?

function abc(a,b,c,d){
  alert(a+b+c+d); 
}
abc(2,3,4,5);

4 个答案:

答案 0 :(得分:4)

function abc(){
    return Array.prototype.reduce.call(arguments, function(a,b) {
        return a + b;
    }, 0);
}

我们可以通过将.reduce绑定为this的{​​{1}}来减少详细程度。

.call

然后就是:

var reduce = Function.call.bind([].reduce);

答案 1 :(得分:3)

您可以使用arguments

function abc(){
  var total = 0;
  for( var i = 0; i < arguments.length; i++) {
     total += arguments[i];
  }
  alert(total);
}

abc(1, 2, 3, 4, 5, 6, 7);

Demo

function abc( args ){
  var total = 0;
  for( var i = 0; i < args.length; i++) {
     total += args[i];
  }
  alert(total);
}
abc([1, 2, 3, 4, 5, 6, 7]);

Demo

最好的方法是使用后者。

答案 2 :(得分:2)

要自动接受无限数量的参数,请使用the arguments property

function sum() { // javascript functions can accept more arguments than specified
  var total = 0;
  for (var i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}

请记住,与在原始代码中调用“a + b + c + d”相比,这实际上可能不会更短或更易读。

答案 3 :(得分:0)

这是使用Array.reduce()命令的较短版本。

function abc() {
   alert([].reduce.call(arguments, function(a, b) { return a + b; }));
}
abc(2,3,4,5);