У меня есть функция с неопределенным количеством аргументов, которые я хочу передать как данные и объединить в новый объект.
Аргументы могут быть типа объекта, массива или целого числа.
результатом должен быть объект, например.
{
arg1: obj,
arg3: [obj,obj,obj]
arg4: 1234
}
Сначала я надеялся на что-то подобное, но ...artRest, конечно, является массивом.
function foo(arg1, arg2, ...argRest) {
return {
arg1,
arg2,
...artRest
}
}
Если вы собираетесь деструктурировать объект, то вам нужно об этом сказать.. function foo({arg1, arg2, ...argRest})



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете сделать что-то подобное, используя синтаксис остальных параметров и reduce.
function foo(...arguments) {
return arguments.reduce((r,a,i) => (r[`arg${i+1}`] = a, r), {})
}
const argumentsToObject = foo(1, 2, [1, 2, 3], "name", {a: 10,b: 20})
console.info(argumentsToObject)Если вы не слишком придирчивы к префиксу arg, вы можете просто сделать:
function foo(...arguments) {
return {...arguments}
}
const argumentsToObject = foo(1, 2, [1, 2, 3], "name", {a: 10,b: 20})
console.info(argumentsToObject)
Но какие имена должны быть у ключей?
"arg" + n? И зачем все это?