如何在javascript组中按特定字段创建对象数组



我有这样的数据:

const input = [ {title: 'head', value: a, amount: 10},
{title: 'head', value: b, amount: 5},
{title: 'body', value: c, amount: 20} ];

我想用这样的数据制作一个对象文字数组:

const output = [{title: 'head',
values: [{value: a, amount: 10},
{value: b, amount: 5}]
},
{title: 'body',
values: [{value: a, amount: 20}]
}];

由于我不习惯javascript,所以很难按标题包装值。🥲

请帮帮我。

您可以使用Set获取唯一值,然后将匹配条目映射到如下结果:

const out = [...new Set(input.map(i=>i.title))].map(e=>{
return {
title: e,
values: input.filter(p=>p.title === e).map(p=>{
return {
value: p.value,
amount: p.amount
};
})
};
});

最新更新