En este tutorial vamos a ver cómo puedes filtrar los elementos de un array, obteniendo así un nuevo array que solamente incluya algunos de los elementos del original en base a las condiciones deseadas. Para ello, JavaScript dispone del método filter
, implementado en todos los arrays.
Vamos a poner el siguiente array como ejemplo, en el que tenemos los nombres, apellidos y edades de tres personas diferentes:
const personas = [
{
nombre: 'Edu',
apellido: 'Lazaro',
edad: 35,
},
{
name: 'Manual',
apellido: 'Martínez',
edad: 25,
},
{
name: 'Sofía',
apellido: 'Martínez',
edad: 21,
},
];
Nuestra intención es la de crear un nuevo array que contenga solamente aquellas personas cuya edad
sea menor de 30 años, con lo cual yo, que tengo 35, me quedaría fuera 😔.
Para lograr nuestro cometido vamos a usar el método filter
, que acepta una función como parámetro. El método filter
iterará los elementos del array, ejecutando la función con el elemento de la iteración actual del array como parámetro de la misma. Si la función devuelve el valor true
, el elemento del array se conservará. Si devuelve false
, se descartará.
const personasFiltradas = personas.filter(
(persona) => persona.edad < 30
);
console.log(personasFiltradas);
Este sería el valor del nuevo array personasFiltradas
que hemos obtenido como resultado:
[
{
name: 'Manual',
apellido: 'Martínez',
edad: 25,
},
{
name: 'Sofía',
apellido: 'Martínez',
edad: 21,
},
]
Además de devolver true
, los elementos también se conservarán en el array siempre y cuando la expresión que se devuelva se evalúe como positiva. Si se evalúa como negativa, se descartarán.
Esto ha sido todo.