返回传递给函数的所有参数的总和

Sun*_*arg 1 javascript

一种方法是使用参数.我可以循环遍历arguments数组,并返回传递的所有参数的总和.

function sum(){
  var sum =0; 
  for(var i=0;i<arguments.length;i++){
     sum += arguments[i];
  }
   return sum;
}
sum(1,2); // returns 3
sum(1,2,3); // returns 6
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以不使用循环?

zer*_*kms 8

其他人提供了冗余复制arguments到一个阵列的答案,该阵列将被丢弃.

相反,你可以一步完成所有事情:

function sum() {
    return Array.prototype.reduce.call(arguments, function(a, b) {
        return a + b;
    }, 0);
}
Run Code Online (Sandbox Code Playgroud)

如果使用ES2015是一个选项,你可以有更好的(主观)实现:

const sum = (...args) => [...args].reduce((a, b) => a + b, 0);
Run Code Online (Sandbox Code Playgroud)