На основе массива я хочу создать новый массив, сгруппированный по свойству 'desc'
содержащихся объектов. Вот так:
const sourceArray = [
{ id: 'id1', sourceDesc: 'foo', prop1: 'ignoreme', prop2: 'ignoreme' }
{ id: 'id2', sourceDesc: 'foo', prop1: 'ignoreme', prop2: 'ignoreme' }
{ id: 'id3', sourceDesc: 'bar', prop1: 'ignoreme', prop2: 'ignoreme' }
{ id: 'id4', sourceDesc: 'baz', prop1: 'ignoreme', prop2: 'ignoreme' }
];
const targetArray = [
{ desc: 'foo', ids: [
{ id: 'id1', prop1: 'ignoreme', prop2: 'ignoreme' },
{ id: 'id2', prop1: 'ignoreme', prop2: 'ignoreme' }
]},
{ desc: 'bar', ids: [
{ id: 'id3', prop1: 'ignoreme', prop2: 'ignoreme' }
]},
{ desc: 'baz', ids: [
{ id: 'id4', prop1: 'ignoreme', prop2: 'ignoreme' }
]}
];
Полагаю, функция высшего порядка reduce()
будет лучшим / современным / эффективным способом для достижения этой цели ... И если да, то как? Я немного застрял в моей голове ... Я нашел некоторые ответы на эту топи c, но я не могу адаптировать их к моей структуре массива: - (