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

新手上路,请多包涵

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

 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

有没有其他方法可以不使用循环来做到这一点?

原文由 Sunil Garg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 217
2 个回答

其他人通过将 arguments 冗余复制到一个即将被丢弃的数组来提供答案。

相反,您可以一步完成所有操作:

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

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

 const sum = (...args) => [...args].reduce((a, b) => a + b, 0);

原文由 zerkms 发布,翻译遵循 CC BY-SA 3.0 许可协议

剩余 参数的单线:

 const sum = (...args) => args.reduce((a, b) => a + b);

sum(1, 3, 5, 7, 9); // 25

原文由 t_dom93 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题