Bird
Raised Fist0
Javascriptprogramming~3 mins

Why Filter method in Javascript? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could instantly find exactly what you want in a big list with just one line of code?

The Scenario

Imagine you have a long list of names and you want to find only those that start with the letter 'A'. Doing this by hand means checking each name one by one, which takes a lot of time and effort.

The Problem

Manually going through each item is slow and easy to mess up. You might skip some names or make mistakes copying them. It's also hard to change the rule later without redoing everything.

The Solution

The filter method lets you quickly pick out only the items you want from a list by writing a simple rule. It does all the checking for you, so you get a new list with just the matching items instantly.

Before vs After
✗ Before
const result = [];
for(let i = 0; i < names.length; i++) {
  if(names[i][0] === 'A') {
    result.push(names[i]);
  }
}
✓ After
const result = names.filter(name => name.startsWith('A'));
What It Enables

It makes finding and working with specific data in lists fast, easy, and less error-prone.

Real Life Example

Filtering a list of products to show only those that are in stock or on sale on an online store.

Key Takeaways

Manually filtering data is slow and error-prone.

The filter method automates this with a simple rule.

This saves time and makes code cleaner and easier to change.

Practice

(1/5)
1. What does the JavaScript filter method do?
easy
A. Sorts the array in ascending order
B. Creates a new array with elements that pass a test
C. Changes the original array by removing elements
D. Combines all elements into a single value

Solution

  1. Step 1: Understand the purpose of filter

    The filter method tests each element with a function and keeps only those that return true.
  2. Step 2: Compare options with filter behavior

    Only Creates a new array with elements that pass a test describes creating a new array with elements that pass the test, which matches filter's behavior.
  3. Final Answer:

    Creates a new array with elements that pass a test -> Option B
  4. Quick Check:

    filter creates new filtered array = C [OK]
Hint: Filter keeps items passing test, original array stays same [OK]
Common Mistakes:
  • Thinking filter changes original array
  • Confusing filter with sort or reduce
  • Believing filter combines elements
2. Which of the following is the correct syntax to filter an array arr for values greater than 10?
easy
A. arr.filter(x => {x > 10});
B. arr.filter(x > 10);
C. arr.filter(x => x > 10);
D. arr.filter(x => x > 10)();

Solution

  1. Step 1: Check arrow function syntax inside filter

    The filter method requires a function that returns true or false. The arrow function must return the condition directly or with a return statement.
  2. Step 2: Validate each option's syntax

    arr.filter(x => x > 10); uses correct arrow function syntax returning x > 10. arr.filter(x > 10); misses the function. arr.filter(x => {x > 10}); uses braces but no return, so returns undefined. arr.filter(x => x > 10)(); adds extra parentheses causing error.
  3. Final Answer:

    arr.filter(x => x > 10); -> Option C
  4. Quick Check:

    Correct arrow function syntax = A [OK]
Hint: Arrow function must return condition inside filter [OK]
Common Mistakes:
  • Omitting arrow function syntax
  • Using braces without return in arrow function
  • Adding extra parentheses after filter call
3. What is the output of the following code?
const nums = [5, 12, 8, 130, 44];
const result = nums.filter(num => num > 10);
console.log(result);
medium
A. [5, 8]
B. []
C. [5, 12, 8, 130, 44]
D. [12, 130, 44]

Solution

  1. Step 1: Identify the filter condition

    The filter keeps numbers greater than 10.
  2. Step 2: Check each number in the array

    5 (no), 12 (yes), 8 (no), 130 (yes), 44 (yes). So filtered array is [12, 130, 44].
  3. Final Answer:

    [12, 130, 44] -> Option D
  4. Quick Check:

    Filter > 10 = [12,130,44] [OK]
Hint: Filter keeps only items passing condition [OK]
Common Mistakes:
  • Including numbers not greater than 10
  • Returning original array instead of filtered
  • Confusing filter with map or reduce output
4. Find the error in this code that tries to filter even numbers:
const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(num => { num % 2 === 0 });
console.log(evens);
medium
A. Missing return statement inside arrow function
B. filter method does not exist on arrays
C. num % 2 === 0 is incorrect syntax
D. Array should be declared with let, not const

Solution

  1. Step 1: Analyze arrow function with braces

    When using braces in arrow functions, you must explicitly return a value.
  2. Step 2: Check the function body

    The function body has expression but no return, so it returns undefined, causing filter to keep no elements.
  3. Final Answer:

    Missing return statement inside arrow function -> Option A
  4. Quick Check:

    Arrow function with braces needs return [OK]
Hint: Use return inside braces or remove braces in arrow function [OK]
Common Mistakes:
  • Forgetting return inside arrow function with braces
  • Thinking filter is not an array method
  • Misunderstanding modulo operator syntax
5. Given an array of objects:
const people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 17 },
  { name: 'Charlie', age: 19 },
  { name: 'David', age: 15 }
];

// Filter adults (age 18 or older)
const adults = people.filter(person => person.age >= 18);

console.log(adults);

What will be the output?
hard
A. [{ name: 'Alice', age: 25 }, { name: 'Charlie', age: 19 }]
B. [{ name: 'Bob', age: 17 }, { name: 'David', age: 15 }]
C. [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 17 }, { name: 'Charlie', age: 19 }, { name: 'David', age: 15 }]
D. []

Solution

  1. Step 1: Understand filter condition on objects

    The filter keeps objects where person.age is 18 or more.
  2. Step 2: Check each person's age

    Alice (25) and Charlie (19) meet the condition. Bob (17) and David (15) do not.
  3. Final Answer:

    [{ name: 'Alice', age: 25 }, { name: 'Charlie', age: 19 }] -> Option A
  4. Quick Check:

    Filter adults age >= 18 = Alice, Charlie [OK]
Hint: Filter objects by property condition inside arrow function [OK]
Common Mistakes:
  • Filtering by name instead of age
  • Including underage people by mistake
  • Expecting filter to modify original array
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