I need to create a function, that will parse function parameter of integer to an array list.
我需要创建一个函数,它将整数的函数参数解析为数组列表。
So if we call the function like this: sum(1, 4 ,7);
then inside of the function 'sum' the arguments variable/keyword will look like this [1, 4, 7]
. I need to create a sum function so that it can take any number of arguments and return the sum of all of them.
所以,如果我们调用这样的函数:sum(1,4,7);然后在函数'sum'内部,参数variable / keyword将看起来像这样[1,4,7]。我需要创建一个sum函数,以便它可以接受任意数量的参数并返回所有参数的总和。
Here's my code so far:
到目前为止,这是我的代码:
function sum ([a,b]) {
var arr = [a,b];
var sum =arr.reduce(add, 0);
function add(a, b) {
return a + b;
}
}
I also was trying to so something like this:
我也试图这样的事情:
function sum ({
arr[0]: 1;
arr[1]: 2;
arr[2]:3;
var sum =arr.reduce(add, 0);
function add(a, b) {
return a + b;
}
})
but I obviously doing something wrong.
但我显然做错了什么。
4 个解决方案
#1
2
Try this
function sun () {
return Array.prototype.reduce.call(arguments, function(pre, cur) {
return pre + cur
}, 0)
}
This is your need.
这是你的需要。
#2
0
Just for changing arguments
to an array of an array like object, you could use Array.apply
.
只是为了将参数更改为像对象这样的数组数组,可以使用Array.apply。
Read more:
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
#4
0
Try this ES6 solution.
试试这个ES6解决方案。
let sum = (...args) => args.reduce((a, b) => a + b, 0);
You can see the MDN article of rest parameters
for more details. It is basically used for retrieving the list of arguments in an array.
您可以查看有关其余参数的MDN文章以获取更多详细信息。它主要用于检索数组中的参数列表。
#1
2
Try this
function sun () {
return Array.prototype.reduce.call(arguments, function(pre, cur) {
return pre + cur
}, 0)
}
This is your need.
这是你的需要。
#2
0
Just for changing arguments
to an array of an array like object, you could use Array.apply
.
只是为了将参数更改为像对象这样的数组数组,可以使用Array.apply。
Read more:
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
#4
0
Try this ES6 solution.
试试这个ES6解决方案。
let sum = (...args) => args.reduce((a, b) => a + b, 0);
You can see the MDN article of rest parameters
for more details. It is basically used for retrieving the list of arguments in an array.
您可以查看有关其余参数的MDN文章以获取更多详细信息。它主要用于检索数组中的参数列表。