Skip to main content

Filter у масиві

Метод filter() - один із найкорисніших методів масиву в JavaScript. Він використовується, щоб відфільтрувати елементи за певною умовою, створюючи новий масив лише з тих елементів, для яких умова повернула true.


Синтаксис

javascript
const newArray = array.filter((element, index, array) => { return умова; // true -> елемент залишається, false -> виключається });

Параметри колбека:

АргументОпис
elementПоточний елемент масиву
indexІндекс поточного елемента
arrayСам вихідний масив

Приклад 1. Фільтрація чисел

javascript
const numbers = [1, 2, 3, 4, 5, 6]; const even = numbers.filter(num => num % 2 === 0); console.log(even); // [2, 4, 6] console.log(numbers); // [1, 2, 3, 4, 5, 6] - вихідний масив не змінився

filter() перевіряє кожен елемент, і якщо умова true, включає його в результат.


Приклад 2. Фільтрація за властивістю об'єкта

javascript
const users = [ { name: 'Tim', age: 25 }, { name: 'Alex', age: 17 }, { name: 'John', age: 30 } ]; const adults = users.filter(user => user.age >= 18); console.log(adults); // [ // { name: 'Tim', age: 25 }, // { name: 'John', age: 30 } // ]

Частий сценарій - відбір користувачів, товарів, записів тощо за умовою.


Приклад 3. Видалення "порожніх" значень

javascript
const values = [0, null, '', 'Hello', undefined, 42]; const truthy = values.filter(Boolean); console.log(truthy); // ['Hello', 42]

Передача Boolean як функції автоматично відфільтровує "хибні" (falsy) значення.


Часті помилки

  1. Відсутність return у фігурних дужках:
javascript
const result = arr.filter(num => { num > 5 }); // undefined

Правильно:

javascript
const result = arr.filter(num => num > 5); // або const result = arr.filter(num => { return num > 5 });
  1. Спроба змінити елементи всередині filter:

filter() не призначений для зміни - лише для відбору. Для перетворень використовуй map().


Коли використовувати filter()

ЦільЧи підходить filter()
Відібрати елементи за умовоюТак
Перетворити значенняНі - використовуй map()
Знайти один елементНі - використовуй find()
Змінити вихідний масивНі - filter повертає новий масив

Коротко:

filter() - повертає новий масив з елементами, що пройшли перевірку.

Формула запам'ятовування: arr.filter(умова) -> новий_масив_підмножина.


Різниця між map() і filter()

МетодЩо робитьРозмір нового масиву
map()Перетворює кожен елементЗавжди однаковий
filter()Відбирає елементи за умовоюМоже бути менший

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.