What is the method to insert a value in a JSON object array?

I am trying to add a new key-value pair to objects inside a JSON array. How can I achieve this with JavaScript? Here’s a simplified example:

let data = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

// Add 'age' property to each object
for (let obj of data) {
  obj.age = 25;
}

console.log(data);

This modifies the existing objects by adding an ‘age’ attribute. Is there a different approach?

Title: Updating JSON Array Objects Dynamically in JavaScript

Body:
To add a new key-value pair to each object within a JSON array in JavaScript, you can utilize the map function for a clean and functional approach:

let data = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

// Use map to add 'age' property without directly mutating the original objects
let updatedData = data.map(obj => ({ ...obj, age: 25 }));

console.log(updatedData);

This method creates a new array with the updated objects, keeping your original data unchanged. It’s a neat way to manage state when immutability is important.

To enrich JSON objects within an array by adding a new key-value pair in JavaScript, there are several alternatives to consider. While the traditional for...of loop method is efficient, exploring array manipulation with built-in functions like map can offer a cleaner and more functional approach.

The map function is particularly beneficial when you want to transform each element of an array. It creates a new array populated with the results of calling a provided function on every element in the calling array.

Example Using map:

let data = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

// Use map to return a new array with the added property
let updatedData = data.map(obj => {
  return { ...obj, age: 25 };
});

console.log(updatedData);

In this example, we’re leveraging the spread operator { ...obj } to create a new object with the existing properties, while adding an additional age property to each object. This method maintains immutability by avoiding mutation of the original objects.

This approach not only caters to adding a new property but also keeps the original array intact, which is crucial in scenarios where maintaining data integrity is essential.

Hi there,

Use forEach for a straightforward solution:

let data = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

data.forEach(obj => obj.age = 25);

console.log(data);

This modifies objects directly.