Метод filter()
Метод filter() використовується для створення нового масиву, який містить лише ті елементи вихідного масиву, які задовольняють заданій умові, вказаній у колбек функції.
Синтаксис методу filter():
Що виконує метод:
Не змінює вихідний масив.
Поелементо перебирає вихідний масив.
Повертає новий масив.
Додає у новий масив тільки ті елементи, які задовольняють умови колбек-функції.
Якщо колбек функція повернула true, то елемент додається у новий масив.
Якщо колбек функція повернула false, то елемент не додається у новий масив.
Якщо жоден елемент не задовольнив умову, повертається порожній масив.
Приклад
Наприклад у нас є масив чисел. Відфільтруємо додатні і відʼємні числа і переконаємося, що вихідний масив не змінився.
Тобто колбек функція повертає true або false. І елемент масива додається у новий масив тільки якщо повертається true.
Фільтрування унікальних елементів
Методом flatMap() можна розкласти одномірний масив елементів, які утім можуть повторюватися. За допомогою методу filter() можна відфільтрувати унікальні елементи, тобто, щоб не було повторів. Цей прийом працює тільки з масивом примітивних значень - не об'єктів.
Приклад
Згадаємо, як за допомогою flatMap() розклали одномірний масив мов користувачів:
У змінній usersLanguages зберігається масив усіх елементів. Тепер відфільтруємо новий масив так, щоб лишився тільки масив унікальних елементів.
Логіка вибору унікальних елементів:
На кожній ітерації витягаємо індекс поточного елемента (другий параметр колбек-функції).
За допомогою методу indexOf() шукаємо індекс першого такого елемента.
Якщо обидва індекси збігаються, то це унікальний елемент і ми його відфільтровуємо.
Якщо індекси не збігаються, то це повтор і ми його ігноруємо.
Фільтрування масиву об'єктів
Класичною задачею в розробці є фільтрація масиву обʼєктів за якоюсь властивістю.
Наприклад, є масив користувачів. І необхідно відфільтрувати їх за віком: молодше 18 років, середнього віку (18-59 років) і старшого віку (від 60 рків і старше).
Last updated