如何合并也Map组JSON对象数组的键?[duplicate]

h43kikqp  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(170)
    • 此问题在此处已有答案**:

(32个答案)
4小时前关门了。
如何通过一个对象键对一个对象数组进行分组,并基于分组创建一个新的对象数组列表?例如,我有一个对象数组:

{
       "List": [
          {
             "column1": "Name",
              "column2" :"Gender",
              "column3" :"Phone",
              "column4" :'Age',
             "items": [
                {
                   "column1": "SR",
                   "column2" :"M",
                   "column3" :"1223322",
                    "column4" :'23',
                },
                {
                   "column1": "SA",
                   "column2" :"F",
                   "column3" :"1322222",
                    "column4" :'26',
                },
             ]
          }

和我的预期输出:

List :[
{
               "Name": "SR",
              "Gender" :"M",
              "Phone" :"1223322",
              "Age" :'23',
    {...}
    ]

我不知道如何Map这个?请帮我解决。谢谢

pgky5nke

pgky5nke1#

使用动态属性访问根据包含对象中的Map转换原始项中的列名。
使用.flatMap()将具有嵌套items数组的对象数组拼合为单个项目数组。

const data = {
  "List": [{
    "column1": "Name",
    "column2": "Gender",
    "column3": "Phone",
    "column4": 'Age',
    "items": [{
        "column1": "SR",
        "column2": "M",
        "column3": "1223322",
        "column4": '23',
      },
      {
        "column1": "SA",
        "column2": "F",
        "column3": "1322222",
        "column4": '26',
      },
    ]
  }]
};

data.List = data.List.flatMap(d =>
  d.items.map(item =>
    Object.fromEntries(Object.entries(item).map(([key, value]) => [d[key], value]))));

console.log(data);

相关问题