Borislav Hadzhiev
Thu Oct 14 2021·2 min read
Photo by David Solce
To sum a property in an array of objects:
reduce()
method to iterate over the array.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 parameter to the reduce
method.
For each object in the array, we increment the accumulator
by the salary
value in the object.
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:
sum
variable, using the let
keyword and set it to 0
.forEach()
method to iterate over the array.sum
variable with the value of the object.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 pass to the Array.forEach method gets called with each element in the array.
Notice that we declare 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.
forEach
method is not supported in Internet Explorer. If you have to support the browser, you can use a basic for loop instead.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.