Метод filter() в JavaScript

Метод 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(), чтобы сделать ваш код более чистым и читаемым.

Report Page