Tengo 2 matrices como se muestra a continuación, quiero actualizar el valor de array1 en función del valor de array2 , por ejemplo, en array1.name . nombre. Quiero establecer su valor en el valor de array2.uName y la matriz actualizada debe ser const array1 = [{name: "aman", age:"26"},...] . ¿Cómo lograr esto en React?
En realidad, quiero mapear a través de una nueva matriz modificada y devolver un component con los datos combinados de ambas matrices, pero array1 debe actualizarse en función de array2 que obtengo de api .
const array1 = [{ name: "abc", age: "123" }, { name: "bcd", age: "456" }, ]; const array2 = [{ uAddress: "India", uAge: "26", uNum: "12345", uName: "aman" }, { uAge: "46", uAddress: "India", uNum: "6789", uName: "rohan" }, ];Use forEach para iterar a través de su lista y configure los campos en consecuencia.
array1.forEach((person, index) => { person.name = array2[index].uName; person.age = array2[index].uAge; })Resultado: [ { nombre: 'aman', edad: '26' }, { nombre: 'rohan', edad: '46' } ]
actualizar:
array1.forEach((person, index) => { let copyFromPerson = array2.find(ele => ele.id === person.id) person.name = copyFromPerson.uName; person.age = copyFromPerson.uAge; })Esto no es realmente algo específico de React, pero si usa una función de orden superior forEach , puede lograr esta actualización.
array1.forEach((item, index) => { item.age = array2[index].uAge item.name = array2[index].uName }) console.log(array1[0]) // {name: "aman", age: "26"} Nota: En la descripción, dijiste array1.name . Solo quiero asegurarme de que sepas que eso no funcionará. array1 es una matriz de objetos, por lo que para usar la notación de puntos para acceder a una propiedad, debe aclarar a qué índice de la matriz desea acceder. Como array1[0] o array1[1] . Entonces puedes hacer array1[0].name