Метод filter - фильтрация элементов массива на JavaScript

Метод filter позволяется отфильтровать элементы массива, оставив только подходящие под определенное условие элементы. Метод в параметре получает функцию, которая выполнится для каждого элемента массива. Своим результатом метод возвращает новый массив, в который войдут только те элементы, для которых переданная функции вернет true.

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

Синтаксис

let новый массив = массив.filter(function(элемент, индекс, массив) { код return true или false });

Пример

Давайте отфильтруем массив, оставив в нем только положительные числа:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(function(elem) { if (elem >= 0) { return true; } else { return false; } }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись стрелочной функцией:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => { if (elem >= 0) { return true; } else { return false; } }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись сокращением логических операций:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => { return elem >= 0; }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись особенностями стрелочных функций:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => elem > 0); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

При необходимости в третий параметр можно передать сам массив:

let res = arr.filter(function(elem, index, arr) { тут будет доступен массив arr });

Смотрите также

  • методы map и forEach,
    которые позволяют применить функцию к каждому элементу массива
  • методы some и every,
    выполняющие проверку массива
  • методы reduce и reduceRight,
    сворачивающие массив к одному значению



Чат с GPT Компилятор