Bird
Raised Fist0
Javascriptprogramming~20 mins

Reduce method in Javascript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
πŸŽ–οΈ
Reduce Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this reduce example?
Consider the following JavaScript code using the reduce method. What will be printed to the console?
Javascript
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, val) => acc + val, 0);
console.log(sum);
Aundefined
B24
C10
DTypeError
Attempts:
2 left
πŸ’‘ Hint
Think about how reduce adds each number starting from 0.
❓ Predict Output
intermediate
2:00remaining
What does this reduce code output?
Look at this code that uses reduce to find the longest word in an array. What will it print?
Javascript
const words = ['cat', 'elephant', 'dog', 'hippopotamus'];
const longest = words.reduce((a, b) => a.length > b.length ? a : b);
console.log(longest);
A"hippopotamus"
BTypeError
C"dog"
D"elephant"
Attempts:
2 left
πŸ’‘ Hint
Reduce compares lengths and keeps the longer word.
❓ Predict Output
advanced
2:00remaining
What is the output of this reduce with objects?
This code uses reduce to count how many times each color appears. What is the output?
Javascript
const colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'];
const count = colors.reduce((acc, color) => {
  acc[color] = (acc[color] || 0) + 1;
  return acc;
}, {});
console.log(count);
A{"red":3,"blue":2,"green":1}
B{"red":1,"blue":1,"green":1}
CTypeError
D{"red":2,"blue":3,"green":1}
Attempts:
2 left
πŸ’‘ Hint
Each color is counted by adding 1 to its current count.
❓ Predict Output
advanced
2:00remaining
What error does this reduce code cause?
What error will this code produce when run?
Javascript
const arr = [];
const result = arr.reduce((a, b) => a + b);
console.log(result);
ASyntaxError
BTypeError: Reduce of empty array with no initial value
Cundefined
D0
Attempts:
2 left
πŸ’‘ Hint
Think about what happens when reduce has no initial value and the array is empty.
🧠 Conceptual
expert
2:00remaining
Which option produces the product of all numbers using reduce?
You want to multiply all numbers in an array using reduce. Which option correctly does this?
Aarr.reduce((acc, val) => acc * val, 1)
Barr.reduce((acc, val) => acc + val, 1)
Carr.reduce((acc, val) => acc * val)
Darr.reduce((acc, val) => val * val, 1)
Attempts:
2 left
πŸ’‘ Hint
Start with 1 and multiply each value to the accumulator.

Practice

(1/5)
1. What does the reduce method do in JavaScript?
easy
A. It combines all array elements into a single value.
B. It creates a new array with filtered elements.
C. It sorts the elements of an array.
D. It adds a new element to the end of an array.

Solution

  1. Step 1: Understand the purpose of reduce

    The reduce method processes each element of an array to produce one combined result.
  2. Step 2: Compare with other array methods

    Unlike filter or sort, reduce returns a single value, not a new array or sorted array.
  3. Final Answer:

    It combines all array elements into a single value. -> Option A
  4. Quick Check:

    Reduce = combine into one value [OK]
Hint: Reduce combines array items into one value quickly [OK]
Common Mistakes:
  • Confusing reduce with filter or map
  • Thinking reduce returns an array
  • Assuming reduce sorts elements
2. Which of the following is the correct syntax to use reduce on an array arr to sum its elements (safe for empty arrays)?
easy
A. arr.reduce((acc, val) => acc + val, 0);
B. arr.reduce((acc, val) => acc + val);
C. arr.reduce(acc, val => acc + val);
D. arr.reduce((val, acc) => val + acc);

Solution

  1. Step 1: Check the callback function parameters

    The callback must have (accumulator, currentValue) in that order.
  2. Step 2: Verify initial value usage

    Providing 0 as the initial value ensures correct sum starting point.
  3. Final Answer:

    arr.reduce((acc, val) => acc + val, 0); -> Option A
  4. Quick Check:

    Correct syntax with initial value = arr.reduce((acc, val) => acc + val, 0); [OK]
Hint: Use (acc, val) and initial value for sum [OK]
Common Mistakes:
  • Swapping accumulator and current value parameters
  • Omitting initial value causing errors on empty arrays
  • Incorrect arrow function syntax
3. What is the output of the following code?
const numbers = [1, 2, 3, 4];
const result = numbers.reduce((acc, val) => acc * val, 1);
console.log(result);
medium
A. 10
B. 24
C. 1234
D. Error

Solution

  1. Step 1: Understand the reduce operation

    The reduce multiplies all elements starting with initial value 1.
  2. Step 2: Calculate the product step-by-step

    1 * 1 = 1, 1 * 2 = 2, 2 * 3 = 6, 6 * 4 = 24.
  3. Final Answer:

    24 -> Option B
  4. Quick Check:

    Product of array = 24 [OK]
Hint: Multiply stepwise with initial 1 for product [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Forgetting initial value 1
  • Concatenating numbers as strings
4. Find the error in this code snippet:
const arr = [2, 4, 6];
const sum = arr.reduce((acc, val) => acc + val);
console.log(sum);
medium
A. Accumulator and current value are swapped.
B. Arrow function syntax is incorrect.
C. Missing initial value causes error on empty array.
D. Reduce method cannot sum numbers.

Solution

  1. Step 1: Check for initial value in reduce

    The reduce call lacks an initial value, which is risky if array is empty.
  2. Step 2: Understand consequences

    Without initial value, reduce uses first element as accumulator, which works here but fails on empty arrays.
  3. Final Answer:

    Missing initial value causes error on empty array. -> Option C
  4. Quick Check:

    Initial value missing = Missing initial value causes error on empty array. [OK]
Hint: Always provide initial value to avoid errors [OK]
Common Mistakes:
  • Assuming reduce always works without initial value
  • Confusing parameter order
  • Thinking reduce can't sum numbers
5. Given an array of objects representing sales:
const sales = [
  { product: 'A', amount: 10 },
  { product: 'B', amount: 20 },
  { product: 'A', amount: 15 }
];

// Use reduce to find total sales amount for product 'A'

Which code correctly calculates this total?
hard
A. sales.reduce((acc, item) => acc + item.amount);
B. sales.reduce((acc, item) => acc + item.amount, 0);
C. sales.reduce((acc, item) => item.product === 'A' ? acc + item.amount : acc);
D. sales.reduce((acc, item) => acc + (item.product === 'A' ? item.amount : 0), 0);

Solution

  1. Step 1: Filter and sum only product 'A'

    The reduce callback adds item.amount only if item.product is 'A', else adds 0.
  2. Step 2: Provide initial value 0

    Starting from 0 ensures correct total even if no 'A' products exist.
  3. Final Answer:

    sales.reduce((acc, item) => acc + (item.product === 'A' ? item.amount : 0), 0); -> Option D
  4. Quick Check:

    Filter and sum with initial 0 = sales.reduce((acc, item) => acc + (item.product === 'A' ? item.amount : 0), 0); [OK]
Hint: Add amounts conditionally with initial 0 [OK]
Common Mistakes:
  • Summing all amounts without filtering
  • Omitting initial value causing errors
  • Incorrect conditional logic inside reduce
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard