Tengo dos matrices de objetos que necesito combinar donde la ID anidada (connect.id) de la segunda matriz coincide con la identificación de la primera pero no puedo ver cómo hacerlo
¿Alguien puede ayudar?
const arr1 = [ { "id": 7619209572755, "title": "Title 1" }, { "id": 7619209157372, "title": "Title 2" }, { "id": 7619209921625, "title": "Title 3" } ]; const arr2 = [ { "id": 7619217289192, "connect": [ { "id": 7619209157372, "title": "Title 1" } ], "value": "1" }, { "id": 7619217242206, "connect": [ { "id": 7619209921625, "title": "Title 2" } ], "value": "2" } ]; const expectedResult = [ { "id": 7619209572755, "title": "Title 1" }, { "id": 7619209157372, "title": "Title 2", "value": "1" }, { "id": 7619209921625, "title": "Title 3", "value": "2" } ]Array#reduce , itere sobre arr2 para mapear la id de cada elemento de connect con el value de su objeto en un MapArray#map , itere sobre arr1 , si la id de un elemento está en el mapa, establezca su value const arr1 = [ { "id": 7619209572755, "title": "Title 1" }, { "id": 7619209157372, "title": "Title 2" }, { "id": 7619209921625, "title": "Title 3" } ], arr2 = [ { "id": 7619217289192, "connect": [ { "id": 7619209157372, "title": "Title 1" } ], "value": "1", }, { "id": 7619217242206, "connect": [ { "id": 7619209921625, "title": "Title 2" } ], "value": "2", } ]; const connectValueMap = arr2.reduce((map, { connect = [], value}) => { connect.forEach(({ id }) => map.set(id, value)); return map; }, new Map); const merged = arr1.map(e => { const value = connectValueMap.get(e.id); if(value) e.value = value; return e; }); console.log(merged);