Введение
Метод filter()
Array создает новый массив с элементами, которые соответствуют определенным критериям существующего массива:
var numbers = [1, 3, 6, 8, 11];
var lucky = numbers.filter(function(number) {
return number > 7;
});
// [ 8, 11 ]
В примере выше берется массив numbers
и возвращается новый массив filtered, содержащий только значения больше семи.
Синтаксис фильтра
var newArray = array.filter(function(item) {
return condition;
});
Аргумент item ссылается на текущий элемент массива, поскольку filter() сверяет его с условием condition. Этот метод полезен для доступа к свойствам объектов.
Если текущий элемент item соответствует условию, он отправляется в новый массив.
Фильтрация массива объектов
Метод filter() часто применяется для фильтрации массивов объектов по свойствам:
var heroes = [
{name: “Batman”, franchise: “DC”},
{name: “Ironman”, franchise: “Marvel”},
{name: “Thor”, franchise: “Marvel”},
{name: “Superman”, franchise: “DC”}
];
var marvelHeroes = heroes.filter(function(hero) {
return hero.franchise == “Marvel”;
});
// [ {name: “Ironman”, franchise: “Marvel”}, {name: “Thor”, franchise: “Marvel”} ]
Дополнительные ресурсы
Более подробную информацию по методу filter()
можно найти в справочных материалах MDN.
Фильтрация — лишь один из нескольких методов итерации массивов в JavaScript. Прочитайте материал Использование методов итерации массивов в JavaScript, чтобы узнать о других методах, таких как map()
и reduce()
.