Introducción
El método de matriz filter()
crea una nueva matriz con elementos que caen bajo un criterio dado a partir de una matriz existente:
var numbers = [1, 3, 6, 8, 11];
var lucky = numbers.filter(function(number) {
return number > 7;
});
// [ 8, 11 ]
El ejemplo anterior toma la matriz numbers
y devuelve una nueva matriz filtrada con solo los valores que son mayores a siete.
Sintaxis del filtro
var newArray = array.filter(function(item) {
return condition;
});
El argumento item es una referencia al elemento actual en la matriz, ya que filter() lo comprueba contra condition. Esto es útil para acceder a propiedades, en el caso de objetos.
Si el item actual pasa la condición, se envía a una nueva matriz.
Filtrar una matriz de objetos
.filter() se suele usar frecuentemente con una matriz de objetos mediante sus propiedades:
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”} ]
Otros recursos
Para obtener más información sobre filter()
, consulte las referencias de MDN.
El filtro es uno de los varios métodos de iteración en matrices en JavaScript; lea Cómo usar los métodos de iteración con matrices en JavaScript para obtener más información sobre los otros métodos como map()
y reduce()
.