Sum a Property in an Array of Objects in JavaScript

avatar

Borislav Hadzhiev

Last updated: Jul 25, 2022

banner

Photo from Unsplash

Sum a Property in an Array of Objects in JavaScript #

To sum a property in an array of objects:

  1. Call the reduce() method to iterate over the array.
  2. On each iteration increment the sum with the specific value.
  3. The result will contain the sum of the values for the specific property.
index.js
const arr = [ {id: 1, salary: 10}, {id: 2, salary: 20}, {id: 3, salary: 30}, ]; const sum = arr.reduce((accumulator, object) => { return accumulator + object.salary; }, 0); console.log(sum); // 👉️ 60

The function we passed to the Array.reduce() method gets invoked with each element (object) in the array.

The accumulator parameter gets an initial value of 0 because that's what we supplied as the second argument to the reduce method.

We increment the accumulator by the value of the salary property for each object in the array.

The reduce method returns the sum of the salary values of all objects in the array.

An alternative and perhaps simpler approach is to use the forEach method.

To sum a property in an array of objects:

  1. Initialize a sum variable, using the let keyword and set it to 0.
  2. Call the forEach() method to iterate over the array.
  3. On each iteration, increment the sum variable with the value of the object.
index.js
const arr = [ {id: 1, salary: 10}, {id: 2, salary: 20}, {id: 3, salary: 30}, ]; let sum = 0; arr.forEach(element => { sum += element.salary; }); console.log(sum); // 👉️ 60

The function we passed to the Array.forEach method gets called with each element in the array.

Notice that we declared the sum variable using the let keyword. We can't reassign variables declared using const.

On each iteration of the loop, we increment the value stored in the sum variable to get the total amount.

This approach is more readable and intuitive, especially if you're not used to how the reduce method works.

You can also achieve the same result by using a basic for loop.

index.js
const arr = [ {id: 1, salary: 10}, {id: 2, salary: 20}, {id: 3, salary: 30}, ]; let sum = 0; for (let index = 0; index < arr.length; index++) { sum += arr[index].salary; } console.log(sum); // 👉️ 60

This code snippet achieves the same goal, however instead of the forEach method, we use a basic for loop.

Instead of accessing the element directly, we have to use the index of each iteration.

This is a bit indirect and cluttered, however most developers are used to reading for loops.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.