例如,我想要类似的东西:
{
a: 1,
b: 2,
c: 3
}
变成了:
{
d: {
a: 1,
b: 2,
c: 3
}
}
我尝试使用对象本身为该对象分配新属性,但是它显示为圆形,因此我认为它是引用,而不是实际属性,而不是实际值。我想尝试类似JSON.stringify的对象并将其分配给属性,但是我不知道如何将字符串转换为可以分配给属性的对象格式。
答案 0 :(得分:2)
let firstObj = {
a: 1,
b: 2,
c: 3
}
let secondObj = {};
secondObj.d = firstObj;
console.log(secondObj);
基本上,您将创建一个新对象,并将原始对象分配给其属性d
。
答案 1 :(得分:1)
您可以使用ES6解构来制作对象的浅表副本并将其放在新的道具上:
let obj = {
a: 1,
b: 2,
c: 3
}
obj.d = {...obj}
console.log(obj)
如果这不是一个选项,则可以在对象键上reduce()
创建一个新对象并将其分配给d
:
let obj = {
a: 1,
b: 2,
c: 3
}
obj.d = Object.keys(obj).reduce((newObj, k) => {
newObj[k] = obj[k]
return newObj
},{})
console.log(obj)
答案 2 :(得分:0)
这取决于您是要复制对象d
的深拷贝还是浅拷贝。 (对象d
可以具有嵌套结构吗?)
有关here的有效克隆对象方法的问题。