Saltar al contenido principal
eLearner.app
Módulo 6 · Lección 1 de 421/32 en el curso~10 min
Lecciones del módulo (1/4)

map y filter

Dos métodos esenciales: transforman un array en un nuevo array, sin mutar el original.

map: transforma cada elemento

Recibe una función, la aplica a cada elemento y devuelve un array de la misma longitud con los resultados.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

El original permanece intacto:

JS
numeri; // [1, 2, 3, 4]  ← invariato

filter: selecciona un subconjunto

Recibe un predicado (una función que devuelve true/false). Conserva únicamente los elementos para los cuales el predicado es verdadero.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

Combinar los dos

Pipeline clásica: filtra, luego transforma.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Pruébalo tú mismo

Ejercicio#js.m6.l1.e1
Intentos: 0Cargando...

Define `vat(prices, rate)`: dado un array de números y un tipo impositivo (ej. 0.22), devuelve un array con los precios incrementados con el IVA. Usa map.

Cargando editor...
Mostrar pista

prices.map((p) => p * (1 + rate))

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#js.m6.l1.e2
Intentos: 0Cargando...

Define `adultNames(people)`: recibe un array de objetos { name, age } y devuelve un array con los nombres de las personas con age >= 18. Usa filter + map.

Cargando editor...
Mostrar pista

Cadena: .filter(...).map((p) => p.name)

Solución disponible después de 3 intentos