Recorrer arrays en JavaScript no es solo una tarea más, es casi una especie de arte que todo programador debería dominar, ya sea para hacer cosas simples o para manejar procesos más complejos. Desde los clásicos bucles for hasta los métodos más modernos y elegantes como map, filter y reduce, cada técnica tiene su momento y su lugar. La clave está en entender cuándo usar cada uno, y cómo aprovechar sus ventajas para que tu código no solo funcione bien, sino que también tenga ese toque natural y fluido que hace que quien lo lea sienta que fue escrito por alguien con experiencia real.
La vieja confiable: el bucle for
Empezamos con la opción clásica, esa que todos aprendimos en algún momento: el for. Nada como ver cómo pasa línea por línea, elemento por elemento. Es directo y funciona en cualquier situación. Por ejemplo:
const miArray = [1, 2, 3, 4, 5];
for (let i = 0; i < miArray.length; i ) {
console.log(miArray[i]);
}
Aquí te aseguras de tener control total sobre cada paso del recorrido. Aunque hoy en día hay formas más modernas, este sigue siendo útil cuando necesitas algo muy específico o simplemente quieres mantener la lógica simple.
La elegante: forEach
Luego está el método forEach
, ideal para cuando quieres hacer algo con cada elemento sin preocuparte por los detalles del índice:
const miArray = [1, 2, 3, 4, 5];
miArray.forEach(elemento => {
console.log(elemento);
});
Es limpio y directo. Además evita errores comunes del clásico for — como olvidarte de incrementar o poner mal la condición. Pero ojo: forEach
no te permite salir del ciclo con un break
, así que si necesitas detenerte a mitad de camino… mejor busca otra opción.
Transformar en un clic: map
¿Quieres transformar todos los elementos? Ahí entra map
. Es como una máquina de hacer copias modificadas:
const miArray = [1, 2, 3, 4, 5];
const doble = miArray.map(e => e * 2);
console.log(doble); // [2, 4, 6, 8, 10]
Te devuelve un nuevo array con las modificaciones sin alterar el original. Súper útil cuando estás haciendo filtrados o cambios masivos.
Filtrar lo importante: filter
A veces solo quieres quedarte con ciertos elementos — los pares por ejemplo — y descartar el resto. Aquí entra filter
. Es como un colador inteligente:
const miArray = [1, 2 ,3 ,4 ,5];
const pares = miArray.filter(e => e % 2 === 0);
console.log(pares); // [2 ,4]
Perfecto para extraer solo lo relevante sin complicaciones.
Agregar todo en uno: reduce
Finalmente llega el método reduce
, tal vez el más poderoso pero también el más técnico. Sirve para acumular valores o reducir toda una colección a un único resultado:
const miArray = [1 ,2 ,3 ,4 ,5];
const sumaTotal = miArray.reduce((acum ,e) => acum e ,0);
console.log(sumaTotal); //15
Ya sea sumando números o combinando objetos complejos — aquí puedes hacer magia en pocas líneas.
¿Cuál usar cuándo?
- Si necesitas recorrer sin modificar nada ni devolver otro array: for o forEach.
- Para transformar datos rápidamente: map.
- Cuando quieres filtrar ciertos elementos: filter.
- Para operaciones acumulativas o agregaciones finales: reduce.
¿Y tú? ¿Con cuál te sientes más cómodo? A veces hay que combinar varias técnicas según la tarea; lo importante es entender qué hace cada una y cuándo conviene usarlas para evitar andar peleando con tu código después.
¿En qué se diferencian forEach y map?
Uno sólo recorre y ejecuta función por elemento (forEach
), sin crear nuevo array a menos que tú mismo hagas algo adicional. El otro (map
) transforma los datos originales creando un nuevo array con esas transformaciones.
¿Cuándo uso filter?
Cuando quieres sacar solo ciertos elementos que cumplen alguna condición específica — por ejemplo: todos los mayores de edad o las tareas pendientes.
¿Por qué me conviene usar reduce?
Para sumar cosas juntas o combinar datos en un solo valor final (como calcular promedios). Es súper eficiente y conciso si sabes cómo usarlo bien.
Al final del día se trata de entender estas herramientas no sólo para escribir código funcional sino también para hacerlo más humano—más cercano a cómo pensamos cuando estamos resolviendo problemas reales.