Ok, tengo una matriz como la siguiente
[ {data: Array(22), title: '1111'} {data: Array(12), title: '2222'} {data: Array(6), title: '1111'} {data: Array(22), title: '3333'} {data: Array(0), title: '4444'} ] Lo que quiero hacer es si hay objetos con títulos duplicados (como {data: Array(22), title: '1111'} y {data: Array(6), title: '1111'} ), quiero fusionar las matrices de data de los objetos con títulos iguales.
Así que mi resultado final debería ser como
[ {data: Array(28), title: '1111'} {data: Array(12), title: '2222'} {data: Array(22), title: '3333'} {data: Array(0), title: '4444'} ]También probé algunas funciones de lodash y también el filtro de javascript. Intenté forEach, mapeo, etc. Pero no puedo comprender el método para hacer lo que necesito.
Puedes usar Array#reduce .
let arr = [ {data: [1,2,3], title: '1111'}, {data: [4,5], title: '2222'}, {data: [6], title: '1111'}, {data: [7,8,9,10], title: '3333'}, {data: [11,12,13,14,15], title: '4444'} ] let res = Object.values(arr.reduce((acc, {title, data})=>{ (acc[title] ??= {title, data: []}).data.push(...data); return acc; }, {})); console.log(res);