Estoy tratando de obtener los valores de una matriz y asignarlos a una matriz de objetos como una nueva propiedad.
La matriz de objetos:
const employees = [ { firstName: "Ana", lastName: "Rosy" }, { firstName: "Zion", lastName: "Albert" }, { firstName: "John", lastName: "Doe" } ];Una matriz
const ages = [30, 60, 45]Resultado deseado
const employees = [ { firstName: "Ana", lastName: "Rosy", age:30 }, { firstName: "Zion", lastName: "Albert", age:60 }, { firstName: "John", lastName: "Doe", age:45 } ];Intenté algo como esto
const employeesWithAge = (ages) => { return employees.map((row) => { return { ...row, age: ages }; }); }; const result = employeesWithAge(ages); console.log("result", result); Pero agrega toda la matriz de ages a la matriz de objetos de los employees . Cualquier ayuda será apreciada
Puede usar Array.prototype.map() para esto. Use la sintaxis extendida ( ... ) en el elemento actual para copiar las propiedades en un nuevo objeto, luego agregue la propiedad de age basada en la matriz de ages , usando el segundo parámetro de devolución de llamada .map() (el índice actual).
employees.map((employee, i) => ({...employee, age: ages[i]}));Ejemplo en vivo:
const employees = [{ firstName: "Ana", lastName: "Rosy" }, { firstName: "Zion", lastName: "Albert" }, { firstName: "John", lastName: "Doe" } ]; const ages = [30, 60, 45]; const result = employees.map((employee, i) => ({ ...employee, age: ages[i] })); console.log(result);Creo que un bucle for simple debería resolver tu problema.
for (let i = 0; i < employees.length; i++) { employees[i]["age"] = ages[i]; }Este ciclo itera a lo largo de su lista de objetos de empleados y agrega un nuevo atributo de "edad" a cada objeto con la edad correspondiente en su matriz de edades.
En conjunto, me imagino que su código se parece a esto.
const employees = [ { firstName: "Ana", lastName: "Rosy" }, { firstName: "Zion", lastName: "Albert" }, { firstName: "John", lastName: "Doe" } ]; const ages = [30, 60, 45]; for (let i = 0; i < employees.length; i++) { employees[i]["age"] = ages[i]; } console.log(employees);