English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод filter() массива JavaScript

 Объект массива JavaScript

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

Примечание: Метод filter() не изменяет исходный массив.

Синтаксис:

array.filter(callback, thisArg)
var age = [1, 30, 39, 29, 10, 13];
var val = age.filter(isAdult);
function isAdult(element) {
    return element >= 18;
}
Тестирование看看‹/›

Совместимость с браузерами

Числа в таблице указывают на первую версию браузера, которая полностью поддерживает метод filter():

Метод
filter()Да1.5ДаДа9

Значение параметра

ПараметрыОписание
callback
Функция, которую нужно выполнить для каждого элемента массива.
Параметры функции:
  • element(обязательное поле) - Текущий элемент в массиве

  • index(по желанию) - Индекс текущего элемента в массиве

  • array(по желанию) - Вызван массивФильтр

thisArg(по желанию) Значение, используемое при вызове回调

Технические детали

Возвратное значение:Новый массив с элементами, прошедшими тест. Если ни один элемент не прошел тест, будет возвращен пустой массив
Версия JavaScript:ECMAScript 5

Более сложные примеры

Ниже приведен пример использования метода filter() для фильтрации содержимого массива на основе условия поиска:

var fruits = ['apple', 'mango', 'banana', 'orange', 'grapes'];
/**
 * Выборка массива на основе условия поиска (запрос)
 */
function filterItems(query) {
   return fruits.filter(function(el) {
         return el.indexOf(query) > -1;
   }
}
function myFunc(val) {
    document.getElementById("result").innerHTML = filterItems(val);
}
Тестирование看看‹/›

 Объект массива JavaScript