Есть массив, например, такого вида (из интернетов):
const cars = [
{ make: 'audi', model: 'r8', year: '2012' },
{ make: 'audi', model: 'rs5', year: '2013' },
{ make: 'ford', model: 'mustang', year: '2012' },
{ make: 'ford', model: 'fusion', year: '2015' },
{ make: 'kia', model: 'optima', year: '2012' },
];
Мне нужно привести его к виду:
const formatted = [
{
make: 'kia',
attr: [
{ make: 'kia', model: 'optima', year: '2012' }
]
},
{
make: 'ford',
attr: [
{ make: 'ford', model: 'mustang', year: '2012' },
{ make: 'ford', model: 'fusion', year: '2015' }
]
},
{
make: 'audi',
attr: [
{ make: 'audi', model: 'r8', year: '2012' },
{ make: 'audi', model: 'rs5', year: '2013' }
]
}
Делаю так:
const grouped = cars.reduce((acc, curr) => {
const group = curr.make;
acc[group] = [...acc[group] || [], curr];
return acc;
}, []);
// Результат
kia: [{ make: 'kia', model: 'optima', year: '2012' }],
...
но мне такой вид не подходит, не совсем понимаю, как преобразовать, чтобы получить желаемый результат.