用动态值重命名对象根

时间:2019-05-03 16:09:29

标签: javascript

我有一个像这样的对象

{ color: blue, type: color }

我正在尝试将其重新格式化以嵌套在另一个对象中:

{
 object: 
 {color: blue, type: color}
}

窍门在于对象的根名(在上面的示例中为object)将是变量的值,而不是硬编码。

我可以使用像这样的硬编码解决方案来创建它:

let obj = { color: blue, type: color }
let newObj = {
 obj
}

我尝试过使用Object.keys(obj).map(key => {})各种样式,但是无法接近解决方案,它总是最终重命名'inner'对象中的键

我觉得我缺少一些明显且基本的东西,但我很沮丧

1 个答案:

答案 0 :(得分:1)

只需使用{[NAME]:OBJ}。这里是一个例子:

function getObjectName() {
  const myObject = { color: "red", name: "red color" };
  
  const newObject = { [document.getElementById("name").value] : myObject }
  
  console.log(newObject);  
}
<input id="name" onChange="getObjectName()">