Метод filter() в JavaScript
Сегодня поговорим об одном из самых полезных методов для работы с массивами в JavaScript — методе filter()
. Этот метод позволяет вам легко и элегантно фильтровать массивы, создавая новые массивы на основе определённых условий. Давайте разберёмся, как это работает и посмотрим несколько примеров!
Что такое метод filter()?
Метод filter()
создаёт новый массив со всеми элементами, которые прошли проверку, реализованную предоставленной функцией. Он не изменяет оригинальный массив, а возвращает новый массив с отфильтрованными элементами.
Синтаксис
array.filter(callback(element, index, array), thisArg);
- callback: Функция, которая будет вызвана для каждого элемента массива. Возвращает
true
, чтобы сохранить элемент, илиfalse
, чтобы его исключить.element: Текущий обрабатываемый элемент. - index (необязательно): Индекс текущего элемента.
- array (необязательно): Сам массив, который обрабатывается.
- thisArg (необязательно): Значение, используемое в качестве
this
при вызове функции callback.
Примеры использования
1. Фильтрация чётных чисел
Допустим, у нас есть массив чисел, и мы хотим создать новый массив, содержащий только чётные числа.
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const evenNumbers = numbers.filter(number => number % 2 === 0); console.log(evenNumbers); // [2, 4, 6, 8, 10]
2. Фильтрация строк по длине
Предположим, у нас есть массив строк, и мы хотим оставить только те строки, длина которых больше 3 символов.
const words = ['apple', 'banana', 'cat', 'dog', 'elephant']; const longWords = words.filter(word => word.length > 3); console.log(longWords); // ['apple', 'banana', 'elephant']
3. Фильтрация объектов по свойству
У нас есть массив объектов пользователей, и мы хотим отфильтровать только активных пользователей.
const users = [ { id: 1, name: 'John', isActive: true }, { id: 2, name: 'Jane', isActive: false }, { id: 3, name: 'Mike', isActive: true }, { id: 4, name: 'Sara', isActive: false } ]; const activeUsers = users.filter(user => user.isActive); console.log(activeUsers); // [ // { id: 1, name: 'John', isActive: true }, // { id: 3, name: 'Mike', isActive: true } // ]
Заключение
Метод filter()
— это мощный инструмент для работы с массивами в JavaScript. Он позволяет вам легко и эффективно создавать новые массивы, содержащие только те элементы, которые соответствуют определённым условиям. Используйте filter()
, чтобы сделать ваш код более чистым и читаемым.