URL: https://www.progressiverobot.com/js-filter-array-method-ru/

Введение

Метод filter() Array создает новый массив с элементами, которые соответствуют определенным критериям существующего массива:

				
					
var numbers = [1, 3, 6, 8, 11];



var lucky = numbers.filter(function(number) {

  return number > 7;

});



// [ 8, 11 ]

				
			

В примере выше берется массив numbers и возвращается новый массив filtered, содержащий только значения больше семи.

Синтаксис фильтра

filter illustration for: Синтаксис фильтра
				
					
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().