Javascript 转换对象数组的结构
我有一组对象:Javascript 转换对象数组的结构,javascript,arrays,json,Javascript,Arrays,Json,我有一组对象: [{ "Germany": "text", "Brazil": "50.00" }, { "Germany": "1000.00", "Brazil": "1100.00" }, { "Germany": "999999999", "Brazil&q
[{
"Germany": "text",
"Brazil": "50.00"
}, {
"Germany": "1000.00",
"Brazil": "1100.00"
}, {
"Germany": "999999999",
"Brazil": "9999999",
"France": "12"
}]
我想将其转换为以下结构:
[{
"name": "Germany",
"value": 999999999
}, {
"name": "Brazil",
"value": 999999999
}, {
"name": "France",
"value": 12
}]
其中,在第二个对象中,我们对第一个对象中的每个关键点使用较高的值
编辑:值也可以是文本,如德语:text,在这种情况下,该值应被忽略。我在上面的第一个对象中添加了这种情况。您可以使用reduce函数来获得预期的输出。在reduce中,您可以获取当前对象的Object.entries,以便按国家名称分组
常数arr=[{
德国:100.00,
巴西:50.00
}, {
德国:1000.00,
巴西:1100.00
}, {
德国:99999999,
巴西:9999999,
法国:12
}];
const result=Object.valuesarr.reducea,e=>{
Object.entriese.forEach[名称,值]=>{
a[name]??={name,值:0};
a[name].value=a[name]。值>值?a[name]。值:值
};
返回a;
},{};
console.logresult 您可以使用reduce函数来获得预期的输出。在reduce中,您可以获取当前对象的Object.entries,以便按国家名称分组
常数arr=[{
德国:100.00,
巴西:50.00
}, {
德国:1000.00,
巴西:1100.00
}, {
德国:99999999,
巴西:9999999,
法国:12
}];
const result=Object.valuesarr.reducea,e=>{
Object.entriese.forEach[名称,值]=>{
a[name]??={name,值:0};
a[name].value=a[name]。值>值?a[name]。值:值
};
返回a;
},{};
console.logresult 可以使用.reduce迭代对象,使用.forEach迭代每个对象项:
常数数据=[
{德国:100.00,巴西:50.00},
{德国:1000.00,巴西:1100.00},
{德国:文本,巴西:999999,法国:12}
];
const res=Object.valuesdata.reduceac,item=>{
Object.entrieSite.forEach[名称,值]=>{
如果!isNaNvalue{
const prev=附件[名称];
如果!prev acc[name]={name,value};
否则ifprev.value