Tengo un dato como este:
const input = [ {title: 'head', value: a, amount: 10}, {title: 'head', value: b, amount: 5}, {title: 'body', value: c, amount: 20} ];Quiero hacer una matriz de objetos literales con datos como este:
const output = [{title: 'head', values: [{value: a, amount: 10}, {value: b, amount: 5}] }, {title: 'body', values: [{value: a, amount: 20}] }];como no estoy acostumbrado a javascript, tengo problemas para envolver valores por título. 🥲
por favor ayudame.
Puede usar Establecer para obtener los valores únicos y luego asignar las entradas coincidentes al resultado de esta manera:
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 }; }) }; });