一种方法是使用参数.我可以循环遍历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)
有没有其他方法可以不使用循环?
其他人提供了冗余复制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)
| 归档时间: |
|
| 查看次数: |
10641 次 |
| 最近记录: |