DEV Community

Cover image for Mastering the `array.reduce()` Method in JavaScript
Francisco Inoque
Francisco Inoque

Posted on

Mastering the `array.reduce()` Method in JavaScript

Stop Adding the Ordinary Way: Mastering the Power of the reduce() Method in JavaScript

The array.reduce() method is a fundamental tool in JavaScript for performing operations on arrays. It allows you to condense an array into a single value by applying a given function to each element, ultimately accumulating the results. Whether you're dealing with numerical data or complex objects like products, reduce() can streamline your code. Let's explore how it works through two practical examples.

Basic Usage: Summing an Array of Numbers

Imagine you have an array of numbers and you want to find their sum. Here's how you can do it using reduce():

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
});

console.log(sum); // Output: 15 (1 + 2 + 3 + 4 + 5)
Enter fullscreen mode Exit fullscreen mode

In this example:

  • accumulator accumulates the result.
  • currentValue represents the current element being processed.

The reduce() method iterates through each number, applying the provided function to accumulate the sum.

Advanced Usage: Calculating the Total Price of Products

Now, let's tackle a more complex task—calculating the total price of a list of products. Each product is represented as an object in an array:

const products = [
  {
    id: 1,
    name: 'item 1',
    price: 29.99,
    description: "Product 1",
    category: "Electronics"
  },
  {
    id: 2,
    name: 'item 2',
    price: 19.95,
    description: "Product 2",
    category: "Clothing"
  },
  {
    id: 3,
    name: 'item 3',
    price: 49.99,
    description: "Product 3",
    category: "Home Decor"
  },
  {
    id: 4,
    name: 'item 4',
    price: 9.99,
    description: "Product 4",
    category: "Kitchen"
  }
];

const totalPrice = products.reduce((accumulator, currentProduct) => {
  return accumulator + currentProduct.price;
}, 0);

console.log("Total Price of All Products: $" + totalPrice.toFixed(2));
Enter fullscreen mode Exit fullscreen mode

In this case, we use reduce() to iterate through the array of products and accumulate their prices. The accumulator starts at 0, and the function adds the price of each product to it, resulting in the total price.

Conclusion

The array.reduce() method is a versatile tool that simplifies array operations in JavaScript. It's not limited to numbers; it can be applied to arrays of any data type. Understanding how to use it effectively can significantly enhance your ability to manipulate and analyze data in your JavaScript applications. So, harness the power of reduce() and level up your coding skills!

Top comments (1)

Collapse
 
rickdelpo1 profile image
Rick Delpo

hey THANKS Francisco. At first array.reduce is really daunting but it gets easier with a use case. I use reduce to group results by month in a stacked bar chart. You can get code from my codepen and study it carefully so reduce becomes easier. DON'T UNDERESTIMATE the power of REDUCE. Earlier this year I wrote a DEV post about this topic entitled: how to populate a bar chart using only plain vanilla JS with no libraries
click here for more, then download fully commented code from codepen.
dev.to/rickdelpo1/how-to-populate-...