Tengo dos matrices de la siguiente manera:
array1 = [ { "id":"1", "name":"George", "City":"california" }, { "id":"2", "name":"James", "City":"Paris" }, { "id":"3", "name":"Julie", "City":"rome" } ] array2 = [ { "id":"2", "name":"jonty", "City":"wales" }, { "id":"5", "name":"kite", "City":"mumbai" }, { "id":"3", "name":"neha", "City":"pune" } ]Quiero verificar si existe algún elemento con una identificación particular en array2 en array1. Si existe un elemento con esa identificación, reemplace ese elemento en array1; de lo contrario, empuje ese elemento en array1. La matriz final se verá de la siguiente manera:
finalArray = [ { "id":"1", "name":"George", "City":"california" }, { "id":"2", "name":"jonty", "City":"wales" }, { "id":"3", "name":"neha", "City":"pune" }, { "id":"5", "name":"kite", "City":"mumbai" } ]¿Cómo puedo hacer eso?
Esto crea un duplicado de la matriz uno. Luego recorre cada elemento en la matriz 2 y lo inserta en la matriz de salida si tiene una identificación única. Si tiene la misma identificación, reemplaza el elemento de matriz1 a matriz2.
const outArray = [...array1]; for (const item of array2) { const { id } = item; const existingIndex = outArray.findIndex(element => element.id === id); if(existingIndex != -1) { outArray[existingIndex] = item; } else { outArray.push(item); } } // outArray is the output