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

Introdução

O método de matriz filter() cria uma nova matriz com elementos que se enquadram em um determinado critério a partir de uma matriz existente:

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



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

  return number > 7;

});



// [ 8, 11 ]

				
			

O exemplo acima recebe a matriz numbers e retorna uma nova matriz filtrada com apenas os valores que são maiores que sete.

Sintaxe do filtro

matriz illustration for: Sintaxe do filtro
				
					
var newArray = array.filter(function(item) {

  return condition;

});

				
			

O argumento <^>item<^> é uma referência ao elemento atual na matriz enquanto o filter() compara-o com a <^>condition<^>. Isso é útil para acessar as propriedades, no caso de objetos.

Se o <^>item<^> atual passa pela condição, é enviado para a nova matriz.

Filtrando uma matriz de objetos

Um caso de uso comum do .filter() é com uma matriz de objetos através de suas propriedades:

				
					
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”} ]

				
			

Recursos adicionais

Para mais detalhes sobre o filter(), consule a referência na MDN.

O filter é apenas um dos vários métodos de iteração para matrizes no JavaScript. Leia Como usar métodos de iteração em matrizes no JavaScript para aprender mais sobre outros métodos como o map() e reduce().