Tengo dos matrices de objetos result1 y result2
var result1 = [ {id:1, name:'Sandra'}, {id:2, name:'John'}, {id:3, name:'Peter'}, {id:4, name:'Bobby'} ]; var result2 = [ {id:2, name:'Malai'}, {id:4, name:'Lama'} ];Quiero actualizar el nombre si la identificación coincide. Mi meta es:
var result1 = [ {id:1, name:'Sandra'}, {id:2, name:'Malai'}, {id:3, name:'Peter'}, {id:4, name:'Lama'} ]; var result1 = [{ id: 1, name: 'Sandra' }, { id: 2, name: 'John' }, { id: 3, name: 'Peter' }, { id: 4, name: 'Bobby' } ]; var result2 = [{ id: 2, name: 'Malai' }, { id: 4, name: 'Lama' } ]; let results = result1.map(x => { let el = result2.find(y => y.id === x.id); if (el) return { ...x, name: el.name }; return x; }); console.log(results) var result1 = [ {id:1, name:'Sandra'}, {id:2, name:'John'}, {id:3, name:'Peter'}, {id:4, name:'Bobby'} ]; var result2 = [ {id:2, name:'Malai'}, {id:4, name:'Lama'} ]; const finalResult = result1.map((user, index) => { const match = result2.find(({ id }) => user.id === id) return match ? { ...user, name: match.name } : user }) console.log(finalResult)Puede lograrlo usando el mapa para mapear el resultado1 y el uso de encontrar para hacer coincidir el elemento actual dentro del mapa para ver si el resultado2 contiene un objeto que coincida con esa identificación, si ese es el caso, devuelva un nuevo objeto que contenga el usuario actual pero con el nombre de coincidencia, si no solo devuelve el usuario
Pruebe el recorte a continuación. El código es bastante simple. Iteramos a través de cada objeto (persona) de la primera matriz de resultados. Para cada una de esas personas iteraremos result2. Si se encuentra la misma identificación, el objeto de esa persona se sobrescribirá. La salida del código es una tercera matriz con el objetivo que presentaste.
var result1 = [ {id:1, name:'Sandra'}, {id:2, name:'John'}, {id:3, name:'Peter'}, {id:4, name:'Bobby'} ]; var result2 = [ {id:2, name:'Malai'}, {id:4, name:'Lama'} ]; const finalResult = result1.map(person => { for (let i = 0; i < result2.length; i++) { if(person.id === result2[i].id){ person = result2[i]; break; } } return person; }); console.log(finalResult);