题目描述:函数useArguments可以接收1个及以上的参数。请实现函数useArguments,返回所有调用参数相加后的结果。本题测试参数全部为Number类型,不需考虑参数转换。
示例1:
输入:1, 2, 3, 4
输出:10
首先我们来先了解一下arguments,在了解之前我们先来认识一下js的一些功能
其实就是并没有重载函数的功能,但是Arguments对象能够模拟重载。js中每个函数都会有一个arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式‘[]’引用arguments的元素。arguments.length 为函数实参个数,arguments.callee引用函数自身。
arguments的特性:
arguments对象和function是分不开的
因为arguments这个对象不能显示创建
arguments对象只有函数开始时才可用。
使用方法:
arguments对选哪个并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同
列如:
arguments[0]
1 function test() {
2 var s = "";
3 for (var i = 0; i < arguments.length; i++) {
4 alert(arguments[i]);
5 s += arguments[i] + ",";
6 }
7 return s;
8 }
9 test("name", "age");
10
11 输出结果:
12 name,age
下面我们来解决上面的例题
方法一:
1 function useArguments(){
2 let sum =0
3 for(let i=0;i<arguments.length;i++){
4 sum+=arguments[i]
5
6 }
7 return sum
8 }
方法二:由于arguments只是类数组,并没有数组的一些方法,所以我们可以将arguments转换成数组进行累加
function useArguments() {
let arr = [...arguments];
let sum =0
arr.forEach((ele,index)=>{
sum+=ele
})
return sum
}