javascript - 将内部对象转换为外部对象的属性
问题描述
我的 NodeJS 后端有一个这样的对象:
{
"x": "2021",
"y": {
"Kumada, K": 2,
"Wu, XY": 4,
"da Silva, BJP": 2
}
}
我需要它变成这样:
{
"x": "2021",
"Kumada, K": 2
"Wu, XY": 4,
"da Silva, BJP": 2
}
编辑:“y”是动态的,这意味着它可以有任意数量的不同名称,例如:
{
"x": "2021",
"y": {
"Josh, K": 2,
"Bob": 4,
"Joseph": 2,
"John": 0
}
}
有小费吗?感谢任何帮助!
解决方案
下面的方法首先基于创建一个对象a.y
,然后a
使用Object.keys()一个一个地添加所有属性。然后它删除y
密钥,因为它不是必需的。
let a = {
"w" : "Hello",
"x": "2021",
"y": {
"Kumada, K": 2,
"Wu, XY": 4,
"da Silva, BJP": 2
}
}
let b = a.y;
Object.keys(a).forEach((x)=>{
b[x] = a[x];
})
delete b.y
这将是一个浅拷贝
例如:如果你有a["x"]
as { 'prop1' : 22, 'prop2' : 33 }
。你修改a["x"]["prop1"] = 22
; 这也将反映在您的最终对象中。