Considere las siguientes dos matrices:
[ { id: jhz, name: 'John', eyes: 'Green', description: 'Cool guy', }, { id: mbe, name: 'Mary', brand: 'M&B', text: 'Something', } ] [ { id: jhz, name: 'John', eyes: '', }, { id: mbe, name: 'Mary', }, { id: 'beh', name: 'Bernard', } ] La primera matriz puede tener cualquier tipo de pares de valores clave, pero siempre tendrá la id y el name de la clave. Quiero fusionar las dos matrices teniendo en cuenta la id y el name y conservándolos , fusionando todo lo demás y reemplazándolos con datos de la primera matriz si alguna clave se duplica.
También es una parte complicada: la matriz combinada debe seguir el orden de la segunda matriz.
Entonces, en este ejemplo, el resultado que estoy buscando es:
[ { id: jhz, name: 'John', eyes: 'Green', description: 'Cool guy', }, { id: mbe, name: 'Mary', brand: 'M&B', text: 'Something', }, { id: 'beh', name: 'Bernard', } ]puedes hacer algo como esto usando Array.map
const data1 = [{ id: 'jhz', name: 'John', eyes: 'Green', description: 'Cool guy', }, { id: 'mbe', name: 'Mary', brand: 'M&B', text: 'Something', } ] const data2 = [{ id: 'jhz', name: 'John', eyes: '', }, { id: 'mbe', name: 'Mary', }, { id: 'beh', name: 'Bernard', } ] const result = data2.map(d => ({...d, ...(data1.find(d1 => d1.id === d.id && d1.name === d.name) || {})})) console.log(result)