题目描述
函数 useArguments 可以接收 1 个及以上的参数。请实现函数 useArguments,返回所有调用参数相加后的结果。本题的测试参数全部为 Number 类型,不需考虑参数转换。
示例
//输入
1, 2, 3, 4
//输出
10
考察知识点:将arguments对象转为数组的方法
Array.prototype.slice.call(arguments)
或[].silce.call(arguments)
[...arguments]
- 用
for
循环:
var arr = [];
for( let i=0; i<arguments.length; i++){
arr.push(arguments[i]);
}
代码实现
方法一
用for
循环直接遍历arguments对象进行相加求和。
function useArguments() {
var sum = 0;
for(let i=0; i<arguments.length; i++){
sum += arguments[i];
}
return sum;
}
方法二
使用Array.prototype.slice.call(arguments)
或[...arguments]
将arguments对象先转唯数组,再使用reduce()
方法遍历求和。
function useArguments() {
return Array.prototype.slice.call(arguments).reduce((a,b)=>a+b);
//return [...arguments].reduce((a,b)=>a+b);
}