Фильтр массива JavaScript()
Пример 1
Возвращает массив всех значений в age[] старше 18 лет:
const ages = [32, 33, 16, 40];
const result = ages.filter(checkAdult);
function checkAdult(age) {
return age >= 18;
}
Определение и использование
Метод filter()
создает новый массив, заполненный элементами, прошедшими проверку, предоставляемую функцией.
Метод filter()
не выполняет функцию для пустых элементов.
Метод filter()
не изменяет исходный массив.
Синтаксис
array.filter(function(currentValue, index, arr), thisValue)
Параметры
Parameter | Description |
function() | Required. A function to run for each array element. |
currentValue | Required. The value of the current element. |
index | Optional. The index of the current element. |
arr | Optional. The array of the current element. |
thisValue | Optional. Default undefined A value passed to the function as its this value. |
Возвращаемое значение
Тип | Описание |
Массив |
Содержит элементы, прошедшие тест. Если ни один элемент не прошел тест, он возвращает пустой массив. |
Поддержка браузера
filter()
является функцией ECMAScript5 (ES5).
ES5 (JavaScript 2009) полностью поддерживается во всех браузерах:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | 9-11 | Yes | Yes | Yes | Yes |
Пример 2
Возвращает значения в age[], которые превышают определенное число:
<p><input type="number" id="ageToCheck" value="30"></p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
const ages = [32, 33, 12, 40];
function checkAge(age) {
return age > document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAge);
}
</script>