Заполняет массив указанным значением.

Спецификация: ECMAScript 5.1 (ECMA-262)
array.filter(callback(currentValue, index, arr), thisValue); 

Параметры

callback
Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве. Если функция возвращает true, то элемент остаётся в массиве, если false, то удаляется. Функция принимает следующие параметры:
  • currentValue – значение текущего элемента.
  • index – индекс массива текущего элемента.
  • arr – массив, к которому принадлежит текущий элемент (по которому происходит проход).
thisValue
Необязательный параметр. Объект, на который может ссылаться ключевое слово this в функции callback. Если аргумент thisValue опущен, в качестве значения this используется undefined (в конечном счете this будет зависеть от обычных правил контекста выполнения функции).

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

Метод filter() создает новый массив и заполняет его элементами массива, для которых функция callback вернет true. Метод filter() не изменяет сам массив (хотя функция callback может делать это). Метод filter() выполняет цикл по индексам массива в порядке возрастания и вызывает callback для каждого элемента.
Если callback вернет true, элемент с индексом i в массиве будет добавлен во вновь созданный массив. После того как метод filter() проверит все элементы массива, он вернет новый массив.

В следующем примере метод filter используется для выбора из массива простых чисел, т.е. чисел, которые больше единицы и при этом делятся без остатка только на 1 и на себя:

Выполнить код »

В следующем примере метод filter получает в качестве аргумента безимянную функцию обратного вызова, которая возвращает из массива элементы типа string:

Выполнить код »

В следующем примере показано использование необязательного аргумента thisValue, задающего объект, на который может ссылаться ключевое слово this в функции обратного вызова:

Выполнить код »

Комментарии

пожелания к комментариям…
  • Приветствуются комментарии, соответствующие теме урока: вопросы, ответы, предложения.
  • Одну строчку кода оборачивайте в тег <code>, несколько строчек кода — в теги <pre><code>...ваш код...</code></pre>.
  • Допускаются ссылки на онлайн-песочницы (codepen, plnkr, JSBin и др.).