我有大量的变数。计算总和的最正确方法是什么。以下是静态方式。 。如果数字会增加到N倍?
function abc(a,b,c,d){
alert(a+b+c+d);
}
abc(2,3,4,5);
答案 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);
或强>
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]);
最好的方法是使用后者。
答案 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);