RivoCode

JavaScript Fundamentals · Arrays · Lesson 18 of 48

filter and reduce

Concept

filter and reduce

filter keeps only the items that pass a test. reduce combines all items in an array into a single value.

reduce is the most flexible of the three — sum, count, and even map or filter can technically be built out of reduce, though the dedicated methods usually read more clearly.

By the end of this lesson
  • Explain the core idea behind filter and reduce.
  • Predict output before running a change.
  • Test one realistic and one unusual input.
  • Use the result to make the next decision.
How to study this page
  1. 1. Read one concept.
  2. 2. Change the example.
  3. 3. Run, compare, and explain.
  4. 4. Complete the challenge below.
Syntax
array.filter((item) => condition)
array.reduce((accumulator, item) => newAccumulator, startValue)
ExampleRunnable
const nums = [1, 2, 3, 4, 5];
const evens = nums.filter((n) => n % 2 === 0);
const sum = nums.reduce((total, n) => total + n, 0);
console.log(evens, sum);
Try it Yourself »
Finding one item with find
const users = [{ id: 1 }, { id: 2 }];
const match = users.find((u) => u.id === 2);
console.log(match);
Note: find returns the first matching item itself (or undefined), not an array — different from filter, which always returns an array.
Self-check before continuing

Without looking at the example, describe what changes when you modify one input in filter and reduce. Then reopen the editor and prove your explanation with a small test.

You are ready to continue when you can predict, test, and explain the result.

Your turn

Use filter to get numbers greater than 10 from an array, then reduce to sum them.

Loading editor…

Console

Output will appear here...