Фильтрация массива по нескольким условиям в JavaScript

Фильтрация массива по нескольким условиям в JavaScript

JavaScript предоставляет мощный инструментарий для работы с массивами. Один из часто используемых методов – это метод фильтрации.

Метод фильтрации позволяет отфильтровать элементы массива по определенному условию. Например, вы можете отфильтровать все элементы, которые больше определенного значения, или все элементы, которые содержат определенную строку.

Часто возникает задача фильтрации массива по нескольким условиям одновременно. В этой статье мы рассмотрим, как выполнять такую фильтрацию.

Пример 1: Фильтрация массива объектов по нескольким свойствам

Допустим, что у нас есть массив объектов, каждый из которых представляет человека:

const people = [
  { name: 'Alice', age: 25, gender: 'female' },
  { name: 'Bob', age: 30, gender: 'male' },
  { name: 'Charlie', age: 40, gender: 'male' },
  { name: 'Dan', age: 55, gender: 'male' },
  { name: 'Eve', age: 18, gender: 'female' }
];

Мы хотим отфильтровать этот массив, чтобы получить только те объекты, которые соответствуют определенным условиям. Например, мы хотим получить только женщин старше 20 лет.

Для этого мы можем использовать метод filter() с несколькими условиями внутри:

const filteredPeople = people.filter(person => {
  return person.gender === 'female' && person.age > 20;
});

console.log(filteredPeople);
// Output: [{ name: 'Alice', age: 25, gender: 'female' }]

В этом примере мы использовали стрелочную функцию для определения условия фильтрации. Возвращаемое значение функции – это булево значение, которое указывает, должен ли элемент быть включен в результат (true) или нет (false). Мы использовали оператор && для объединения двух условий.

Пример 2: Фильтрация массива чисел по нескольким диапазонам

Допустим, что у нас есть массив чисел:

const numbers = [1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50];

Мы хотим отфильтровать этот массив, чтобы получить только те числа, которые находятся в одном из нескольких диапазонов. Например, мы хотим получить только те числа, которые меньше 10 или больше 30.

Читайте так же  Добавление пары ключ/значение в Map на JavaScript

Для этого мы можем использовать метод filter() с несколькими условиями внутри:

const filteredNumbers = numbers.filter(number => {
  return number < 10 || number > 30;
});

console.log(filteredNumbers);
// Output: [1, 5, 35, 40, 45, 50]

В этом примере мы также использовали стрелочную функцию для определения условия фильтрации, а затем использовали оператор || для объединения двух условий.

Заключение

Метод фильтрации – это мощный инструмент, который позволяет отфильтровать элементы массива по заданному условию. Если требуется фильтрация по нескольким условиям, можно использовать метод filter() с несколькими условиями внутри. В этой статье были рассмотрены два примера фильтрации: фильтрация массива объектов по нескольким свойствам и фильтрация массива чисел по нескольким диапазонам.