首页 > 解决方案 > 将其余参数合并到一个新对象中并返回

问题描述

我有一个带有未定义数量参数的函数,我想将其作为数据传递并合并到一个新对象中。

参数可以是对象、数组或整数类型。

结果应该是一个对象,例如

{
  arg1: obj,
  arg3: [obj,obj,obj]
  arg4: 1234
}

我最初希望是这样的,但是 ...artRest 当然是一个数组。

function foo(arg1, arg2, ...argRest) {
   return {
     arg1,
     arg2,
     ...artRest
   }
}

标签: javascriptreactjsgatsby

解决方案


您可以使用rest 参数语法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.log(argumentsToObject)

如果您对前缀不太讲究arg,那么您可以简单地执行以下操作:

function foo(...arguments) {
  return {...arguments}
}

const argumentsToObject = foo(1, 2, [1, 2, 3], "name", {a: 10,b: 20})

console.log(argumentsToObject)


推荐阅读