'How to get the value from an array and assign to array of objects?

I am trying to get the values from an array and assign to an array of objects as a new property.
The array of objects:

const employees = [
  {
    firstName: "Ana",
    lastName: "Rosy"
  },
  {
    firstName: "Zion",
    lastName: "Albert"
  },
  {
    firstName: "John",
    lastName: "Doe"
  }
];

An array

const ages = [30, 60, 45]

Desired result

const employees = [
  {
    firstName: "Ana",
    lastName: "Rosy",
    age:30
  },
  {
    firstName: "Zion",
    lastName: "Albert",
    age:60
  },
  {
    firstName: "John",
    lastName: "Doe",
    age:45
  }
];

I tried something like this

const employeesWithAge = (ages) => {
  return employees.map((row) => {
    return {
      ...row,
      age: ages
    };
  });
};
const result = employeesWithAge(ages);
console.log("result", result);

But it adds the entire array of ages to the employees array of objects. Any help will be appreciated



Solution 1:[1]

I think a simple for loop should solve your problem.

for (let i = 0; i < employees.length; i++) {
  employees[i]["age"] = ages[i];
}

This loop iterates through the length of your list of employee objects and adds a new "age" attribute to each object with the corresponding age in your ages array.

All together I imagine your code looking something like this.

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);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Garrett Moody