Источник: 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]