首页 > 解决方案 > 如何根据键将对象数组拆分为不同的对象

问题描述

我有这种格式的数据

[{
    "Consumer": [{
        "Associated ID": "JSUDB2LXXX / BIC 7503 / US",
        "Parent Consumer": "7503"
    }],
    "Owner": [{
        "Entity": "EN",
        "Region": "LA"
    }]
}]

我想转换成以下格式,我必须将标题和值作为新键添加到旧键和值中,并且必须将每个旧键值分隔在一个单独的对象中。

[{
    "Consumer": [{
            "title": "Associated ID",
            "name": "JSUDB2LXXX / BIC 7503 / US"
        },
        {
            "title": "Parent Consumer",
            "name": "7503"
        }
    ],
    "Owner": [{
            "title": "Entity",
            "name": "EN"
        },
        {
            "title": "Region",
            "name": "LA"
        }
    ]
}]

标签: javascriptarraysjsonobject

解决方案


希望能帮助到你:

let data = [{
    "Consumer": [{
        "Associated ID": "JSUDB2LXXX / BIC 7503 / US",
        "Parent Consumer": "7503"
    }],
    "Owner": [{
        "Entity": "EN",
        "Region": "LA"
    }]
}]

let final = []
data.forEach(el => {
  Object.keys(el).forEach(key => {
    let values = []
    Object.entries(el[key][0]).forEach(entry => {
      values.push({title: entry[0], name: entry[1]})
    })
    let newElement = {}
    newElement[key] = values
    final.push(newElement)
  })
})
console.log(final)

你可以在这里试试:

https://jsbin.com/wazuyoyidi/edit?js,console


推荐阅读