JS Filter - фильтрация данных на сайте
JS метод filter() - это встроенный метод массива, который позволяет производить фильтрацию данных в массиве на основании условий, заданных пользователем.
Синтаксис метода filter() выглядит следующим образом:
arr.filter(callback[, thisArg])
где:
- arr - массив, который нужно отфильтровать
- callback - функция-обработчик, которая будет вызвана для каждого элемента массива
- thisArg (необязательный аргумент) - значение "this" для функции-обработчика.
Функция-обработчик, передаваемая в метод filter(), возвращает "true" или "false" в зависимости от того, должен ли текущий элемент быть включен в результат фильтрации. Если функция-обработчик вернула "true", то элемент добавляется в итоговый массив, иначе - игнорируется.
Пример использования метода filter() для фильтрации массива чисел:
const numbers = [1, 2, 3, 4, 5];
// Функция-обработчик, которая выбирает только четные числа
const filterCallback = (value) => value % 2 === 0;
const filteredNumbers = numbers.filter(filterCallback);
console.log(filteredNumbers); // [2, 4]
В данном примере мы использовали функцию-обработчик filterCallback для фильтрации массива "numbers". Функция проверяет, является ли текущее число четным, и возвращает "true" для четных чисел, и "false" - для нечетных. Метод filter() создает новый массив, который содержит только четные числа из исходного массива.
Можно также использовать метод filter() для работы с объектами массива и фильтрации по данным, хранящимся в свойствах.
Пример использования метода filter() для фильтрации массива объектов:
const people = [
{ name: 'John', age: 25 },
{ name: 'Mary', age: 20 },
{ name: 'Bob', age: 30 },
{ name: 'Sara', age: 27 }
];
// Функция-обработчик, которая выбирает только людей старше 25 лет
const filterCallback = (person) => person.age > 25;
const filteredPeople = people.filter(filterCallback);
console.log(filteredPeople); // [{ name: 'Bob', age: 30 }, { name: 'Sara', age: 27 }]
В данном примере мы использовали функцию-обработчик filterCallback для фильтрации массива объектов "people". Функция проверяет, является ли возраст текущего человека больше 25 лет, и возвращает "true" для людей старше 25 лет, и "false" - для всех остальных. Метод filter() создает новый массив, который содержит только тех людей, возраст которых больше 25 лет.
Таким образом, метод filter() предоставляет мощный инструмент для фильтрации массивов с помощью пользовательских функций-обработчиков. Он может применяться для работы с различными типами массивов и объектов, и помогает эффективно сокращать объемы данных для работы в JS-приложениях.