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
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()
.