使用javascript组合json中的对象
具有此格式的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
[{
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);
控制台日志(输出)代码>请编辑您的问题,以显示您尝试过的内容、遇到的问题、输出问题、错误等。