Метод filter

Метод filter позволяется отфильтровать элементы массива, оставив только подходящие под определенное условие элементы.

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

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

В функцию можно передавать 3 параметра.

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

Синтаксис

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

Пример

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

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

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

[5, 1, 1, 3, 4]

Пример

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

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

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

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