使用javascript组合json中的对象

使用javascript组合json中的对象,javascript,json,data-wrangling,Javascript,Json,Data Wrangling,具有此格式的JSON: [{ name: "A", country: "X", countryID: "02", value: 15 }, { name: "A", country: "Y", countryID: "01", value: 25 }, { name: "B&quo

具有此格式的JSON:

[{
    name: "A",
    country: "X",
    countryID: "02",
    value: 15
  },
  {
    name: "A",
    country: "Y",
    countryID: "01",
    value: 25
  },
  {
    name: "B",
    country: "X",
    countryID: "02",
    value: 35
  },
  {
    name: "B",
    country: "Y",
    countryID: "01",
    value: 45
  }
]
如何在Javascript中通过
name
country
countryID
组合对象以获得以下JSON输出

[{
    country: "Y",
    countryID: "01",
    valueA: 25,
    valueB: 45
  },
  {
    country: "X",
    countryID: "02",
    valueA: 15,
    valueB: 35
  }
]

使用
Array.prototype.reduce
,您可以按
country
countryID
键-值对对对数组项进行分组,并将结果存储到生成的键的对象值中,如下所示

const输入=[{
名称:“A”,
国家:“X”,
countryID:“02”,
价值:15
},
{
名称:“A”,
国家:“Y”,
countryID:“01”,
价值:25
},
{
名称:“B”,
国家:“X”,
countryID:“02”,
价值:35
},
{
名称:“B”,
国家:“Y”,
countryID:“01”,
价值:45
}
];
const groupBy=input.reduce((acc,cur)=>{
const key=`${cur.country}{cur.countryID}`;
acc[key]?acc[key][`value${cur.name}`]=cur.value:acc[key]={
国家:cur.country,
countryID:cur.countryID,
['value'+cur.name]:cur.value
};
返回acc;
}, {});
常量输出=对象值(groupBy);

控制台日志(输出)请编辑您的问题,以显示您尝试过的内容、遇到的问题、输出问题、错误等。