Finding the product of array elements with reduce() in JavaScript

We are required to write a JavaScript function that takes in an array and finds the product of all its elements using the reduce() method.

Understanding reduce() for Products

The reduce() method executes a reducer function on each array element, accumulating results into a single value. For multiplication, we start with an initial value of 1 and multiply each element.

Syntax

array.reduce((accumulator, currentValue) => {
    return accumulator * currentValue;
}, 1);

Example: Basic Product Calculation

const arr = [3, 1, 4, 1, 2, -2, -1];

const produceElements = (arr = []) => {
    const res = arr.reduce((acc, val) => {
        acc = acc * val;
        return acc;
    }, 1);
    return res;
};

console.log(produceElements(arr));
48

Simplified Version

We can make the function more concise using arrow function syntax:

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

const getProduct = (arr) => arr.reduce((acc, val) => acc * val, 1);

console.log(getProduct(numbers));
console.log(getProduct([1, 2, 3, 4, 5]));
console.log(getProduct([-1, 2, -3]));
120
120
6

Handling Edge Cases

const getProductSafe = (arr) => {
    if (!arr || arr.length === 0) return 0;
    return arr.reduce((acc, val) => acc * val, 1);
};

console.log(getProductSafe([]));        // Empty array
console.log(getProductSafe([5]));       // Single element
console.log(getProductSafe([0, 1, 2])); // Contains zero
0
5
0

Key Points

  • Always use 1 as the initial value for multiplication
  • The result will be 0 if any element is 0
  • Negative numbers will affect the sign of the final result
  • Handle empty arrays appropriately based on your use case

Conclusion

Using reduce() with an initial value of 1 provides an elegant way to calculate the product of array elements. Remember to handle edge cases like empty arrays and zero values based on your specific requirements.

Updated on: 2026-03-15T23:19:00+05:30

983 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements