首页 > 解决方案 > 将内部对象转换为外部对象的属性

问题描述

我的 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
    }
}

有小费吗?感谢任何帮助!

标签: javascriptnode.js

解决方案


下面的方法首先基于创建一个对象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; 这也将反映在您的最终对象中。


推荐阅读