Se supone que este código concatena dos elementos dentro de una matriz sin duplicar. Los datos.CamData contienen múltiples objetos, cada objeto tiene un CamID, estado y otros datos. cada (e) tiene este aspecto {Date: 1656533249379, State: 0}
for (let i = 0; i < data.CamData.length; i++) { let hashSet = new Set(); data.CamData[i].Events.forEach((e) => hashSet.add(e)); state.camData[i].Events.forEach((e) => hashSet.add(e)); data.CamData[i].Events = Array.from(hashSet); }Sin embargo, este código solo concatena los dos sin deshacerse de los duplicados.
Creo que esto se debe a que, aunque los objetos contienen datos similares, son objetos diferentes. ¿Hay alguna otra solución para esto?
Creo que puede usar Mapa u Objeto, debe elegir una clave de su objeto, por ejemplo, 'Fecha' y establecer el valor por clave
for (let i = 0; i < data.CamData.length; i++) { let hashMap = new Map(); data.CamData[i].Events.forEach((e) => hashMap.set(e.Date, e)); state.camData[i].Events.forEach((e) => hashMap.set(e.Date,e)); data.CamData[i].Events = Array.from(hashMap.values()); }Espero que esto ayude.