Cómo filtrar elementos de un array en JavaScript sin morir en el intento

Cómo filtrar elementos de un array en JavaScript sin morir en el intento

En JavaScript, trabajar con arrays es como cocinar: puedes tener todos los ingredientes (datos) que necesitas, pero si no sabes cómo separarlos bien, ¡terminarás con un desastre en la cocina! Hoy veremos cómo usar .filter() para quedarte solo con los elementos que te interesan, ¡y dejar todo lo demás fuera!

¿Qué es .filter()?

La función .filter() es como un colador mágico en la programación. Te permite seleccionar los elementos de un array que cumplan con una condición específica. Digamos que tienes una caja de donas, pero solo quieres las de chocolate (buen gusto). Usas .filter() para quedarte solo con esas delicias chocolatosas y olvidarte del resto.

Sintaxis básica

javascriptCopy codeconst nuevoArray = arrayOriginal.filter(function(elemento) {
  // condición que debe cumplir
  return condición;
});

Ejemplo sencillo: Filtrando números pares

Imagina que tienes una lista de números y solo te interesan los números pares (porque te gustan las cosas simétricas).

javascriptCopy codeconst numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const pares = numeros.filter(num => num % 2 === 0);

console.log(pares); // [2, 4, 6, 8, 10]

Aquí, num % 2 === 0 es la condición: si el número es divisible entre 2 sin residuo, ¡es un número par!

Ejemplo 2: Filtrando objetos en un array

No solo puedes filtrar números o strings, ¡también puedes hacerlo con objetos! Imagina que tienes una lista de personas y solo te interesan los que tienen más de 18 años para un club exclusivo (nada de menores aquí).

javascriptCopy codeconst personas = [
  { nombre: 'Ana', edad: 15 },
  { nombre: 'Juan', edad: 22 },
  { nombre: 'Luis', edad: 17 },
  { nombre: 'Marta', edad: 25 }
];

const mayoresDeEdad = personas.filter(persona => persona.edad >= 18);

console.log(mayoresDeEdad);
// [{ nombre: 'Juan', edad: 22 }, { nombre: 'Marta', edad: 25 }]

¿Por qué usar .filter()?

  1. Es elegante: Con una sola línea de código puedes obtener los elementos que necesitas.

  2. Es fácil de leer: Incluso si alguien más ve tu código, será fácil entender qué está haciendo.

  3. No modifica el array original: Te devuelve uno nuevo con los resultados, pero tu array original queda intacto.

Bonus Tip: Filtrando con múltiples condiciones

Puedes ser aún más selectivo si lo necesitas. Por ejemplo, digamos que solo quieres las personas mayores de 18 que además se llaman "Juan" (porque eres fan de ese nombre):

javascriptCopy codeconst juanesMayores = personas.filter(persona => persona.edad >= 18 && persona.nombre === 'Juan');

console.log(juanesMayores);
// [{ nombre: 'Juan', edad: 22 }]

Conclusión

El método .filter() es súper útil y te ahorra muchas líneas de código cuando necesitas filtrar elementos de un array. Ya sea para números, strings, o incluso objetos, con .filter() puedes hacer que tu código sea más limpio, legible y eficiente. ¡Es como un súper poder para los arrays!