Конспект JS-course

Метод filter( )

Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Методfilter() создаёт новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции.

Синтаксис:

arr.filter(callback[, thisArg])

Параметры

  • callback Функция проверки каждого элемента. Возвращает true для сохранения элемента и false для его пропуска.

  • thisArg Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback .

Функция callback вызывается с тремя аргументами:

  1. Значение элемента;
  2. Индекс элемента;
  3. Массив, по которому осуществляется проход.

Описание

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

Если в метод filter был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае, в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Метод filter не изменяет массив, для которого он был вызван.

Пример: отфильтровывание всех маленьких значений

Следующий пример использует filter для создания отфильтрованного массива, все элементы которого больше 10.

function isBigEnough(element) {
  return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// массив filtered равен [12, 130, 44]