Tengo un array de mensajes por ejemplo:
[{
day: "1",
msgs: [{day: "1", id: 1, msg: 'txt'}]
},{
day: "2",
msgs: [{day: "2", id: 2, msg: 'txt'}]
}]
y recibo nuevos mensajes del servidor en este formato:
[
{day: "1", id: 3, msg: 'txt'},
{day: "1", id: 4, msg: 'txt'},
{day: "2", id: 5, msg: 'txt'},
{day: "3", id: 6, msg: 'txt'}
]
Y necesito fusionar los nuevos valores en el antiguo array de mensajes. Y este es el ejemplo de los resultados que necesito.
[{
day: "1",
msgs: [{day: "1", id: 1, msg: 'txt'},
{day: "1", id: 3, msg: 'txt'},
{day: "1", id: 4, msg: 'txt'}]
},{
day: "2",
msgs: [{day: "2", id: 2, msg: 'txt'},
{day: "2", id: 5, msg: 'txt'}]
},{
day: "3",
msgs: [{day: "3", id: 6, msg: 'txt'}]
}]
He pasado 5h en stack overflow buscando un caso similar pero no lo encontré. Ya intenté usar las funciones de lodash groupBy y forEach y no funcionó. Lo importante es que si VIENE UN NUEVO DÍA del servidor se añada ese día en los resultados antiguos.