Métodos de array en producción: map, filter y reduce con criterio
Aprende a transformar, filtrar y agregar colecciones con `map`, `filter` y `reduce` en flujos reales de frontend, manteniendo código legible y fácil de depurar.
Cuando trabajas con datos reales, la pregunta no es solo "recorrer": es transformar, filtrar y resumir sin romper el modelo mental del equipo.
`map`, `filter` y `reduce` son una mini-gramática para construir pipelines claros y mantenibles.
Esta lección te enseña a decidir qué método usar según el objetivo, no por moda ni por memoria mecánica.
Si dominas este bloque, tus datos de API y tu estado de UI se volverán mucho más fáciles de manipular.
- Elegir bien método evita lógica enredada.
- Usa `map` cuando necesites la misma cantidad de elementos, pero con forma o valor distinto. Usa `filter` cuando quieras quedarte solo con un subconjunto. Usa `reduce` cuando el resultado final sea un único valor o estructura acumulada.
- En proyectos grandes, este criterio evita bucles enormes que mezclan varias responsabilidades en una sola función.
- Transforma colecciones sin tocar la original.
- `map` es ideal cuando una API devuelve estructura cruda y tú necesitas shape de presentación. Cada entrada se transforma en una salida, una por una.
Árbol de decisión rápido: ¿map, filter o reduce?
Elegir bien método evita lógica enredada.
Usa `map` cuando necesites la misma cantidad de elementos, pero con forma o valor distinto. Usa `filter` cuando quieras quedarte solo con un subconjunto. Usa `reduce` cuando el resultado final sea un único valor o estructura acumulada.
En proyectos grandes, este criterio evita bucles enormes que mezclan varias responsabilidades en una sola función.
map en casos reales: preparar datos para UI
Transforma colecciones sin tocar la original.
`map` es ideal cuando una API devuelve estructura cruda y tú necesitas shape de presentación. Cada entrada se transforma en una salida, una por una.
Si no devuelves valor en callback de `map`, tendrás `undefined` en cada posición: error muy común al empezar.
filter con criterios compuestos
Filtrar bien es construir reglas de negocio claras.
Con `filter` puedes aplicar varias condiciones y quedarte solo con lo relevante. Esto es muy común en buscadores, paneles de admin y listados de tienda.
No metas condiciones gigantes en línea: crea booleanos intermedios con nombres que expliquen intención.
- Si solo necesitas saber si existe al menos uno, usa `some`.
- Si quieres el primero que cumpla, usa `find`.
- Usa `filter` cuando realmente necesites una colección resultante.
reduce sin miedo: acumular con semilla correcta
El secreto de `reduce` está en el acumulador y su valor inicial.
`reduce` recibe acumulador y elemento actual en cada iteración. El valor inicial define qué tipo de resultado construirás (número, objeto, array, mapa, etc.).
Si omites la semilla en arrays vacíos, tendrás errores. En producción, mejor semilla explícita casi siempre.
Pipeline completo: filtrar, transformar y resumir
La potencia real aparece al encadenar métodos con propósito.
Un pipeline bien diseñado permite leer la lógica como una historia: primero qué datos valen, luego cómo se transforman y finalmente cómo se agregan.
Evita meter side effects dentro de callbacks (`console.log` masivos o mutaciones externas). Mantén callbacks puras siempre que puedas.