创建一个将参数转换为数组的函数

时间:2023-01-20 21:46:49

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文章以获取更多详细信息。它主要用于检索数组中的参数列表。