我需要创建一个函数,它将整数的函数参数解析为数组列表。
因此,如果我们调用这样的函数:sum(1, 4 ,7);
然后在函数'sum'内部,arguments变量/ keyword将看起来像这个[1, 4, 7]
。
我需要创建一个sum函数,以便它可以接受任意数量的参数并返回所有参数的总和。
到目前为止,这是我的代码:
function sum ([a,b]) {
var arr = [a,b];
var sum =arr.reduce(add, 0);
function add(a, b) {
return a + b;
}
}
我也试图这样:
function sum ({
arr[0]: 1;
arr[1]: 2;
arr[2]:3;
var sum =arr.reduce(add, 0);
function add(a, b) {
return a + b;
}
})
但我显然做错了。
答案 0 :(得分:2)
试试这个
function sun () {
return Array.prototype.reduce.call(arguments, function(pre, cur) {
return pre + cur
}, 0)
}
这是你的需要。
答案 1 :(得分:0)
试试这个ES6解决方案。
let sum = (...args) => args.reduce((a, b) => a + b, 0);
您可以查看rest parameters
的MDN文章了解更多详情。它主要用于检索数组中的参数列表。
答案 2 :(得分:0)
只是将arguments
更改为像对象一样的数组数组,您可以使用Array.apply
。
了解更多:
function x() {
return Array.apply(Array, arguments);
}
var array = x(1, 4, 7);
console.log(array);
console.log(typeof array);
console.log(Array.isArray(array));

答案 3 :(得分:0)
var sum =function() {
var args = [];
args.push.apply(args, arguments);
return args.reduce((a,b) => { return a+b}, 0); // ES6 arrow function
}
sum(1,2,3); // return 6