Array.filter()
Заполняет массив указанным значением.
Спецификация: 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
в функции обратного вызова:
Поддержка браузерами
Метод | |||||||
filter() | Да | Да | Да | Да | 1.5+ | 9+ | Да |
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.