Источник: 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
вызывается с тремя аргументами:
Метод 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]