Cómo recorrer un array en JavaScript: forEach, for...of y otros métodos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Por qué "recorrer un array" es la base que debes saber de memoria

\n\n

Imagina: tienes una lista de estudiantes, un carrito de compras o un conjunto de números. Necesitas hacer algo con cada elemento: mostrar un nombre, calcular la suma, filtrar solo a los adultos. En JavaScript hay varias formas de hacerlo, y la más popular es el ciclo forEach.

\n\n

La pregunta "Loop (for each) over an array in JavaScript" en Stack Overflow ha acumulado miles de visitas. Esto significa que incluso desarrolladores experimentados a veces se confunden con los matices. Vamos a desglosarlo todo: desde el clásico for hasta el moderno for...of y el potente forEach. Aprenderás cuándo usar cada método y dejarás de temerle a los arrays.

\n\n

Método n.º 1: El ciclo clásico for — el abuelo de todos los recorridos

\n\n

La forma más antigua y comprensible. Tú mismo controlas el contador y la condición de salida. Ideal cuando necesitas interrumpir el ciclo anticipadamente o saltarte varios elementos.

\n\n
const fruits = ['manzana', 'plátano', 'naranja'];
for (let i = 0; i < fruits.length; i++) {
console.log(`Fruta n.º ${i + 1}: ${fruits[i]}`);
}
\n\n

Ventajas: control total, se puede usar break y continue.
\nDesventajas: verboso, fácil equivocarse con los índices.

\n\n

Cuándo usar el clásico for

\n
    \n
  • Necesitas detener el recorrido anticipadamente (por ejemplo, al buscar un elemento).
  • \n
  • Requieres acceso al índice (no solo al valor).
  • \n
  • Trabajas con arrays multidimensionales.
  • \n
\n\n

Método n.º 2: forEach — el rey de los recorridos en JavaScript

\n\n

Este método es la respuesta a la pregunta "Loop (for each) over an array in JavaScript" en el 90% de los casos. Se llama directamente sobre el array y acepta una función de callback que se ejecuta para cada elemento.

\n\n
const fruits = ['manzana', 'plátano', 'naranja'];
fruits.forEach(function(fruit, index) {
console.log(`Fruta n.º ${index + 1}: ${fruit}`);
});

// Lo mismo con función flecha (estilo moderno):
fruits.forEach((fruit, index) => {
console.log(`Fruta n.º ${index + 1}: ${fruit}`);
});
\n\n

Importante: forEach no devuelve un nuevo array (a diferencia de map). Simplemente ejecuta una acción para cada elemento. Y sí, break y continue no funcionan aquí — si necesitas interrumpir el ciclo, usa for...of o el clásico for.

\n\n

Parámetros de la función callback de forEach

\n
    \n
  • Primer parámetro — el elemento actual del array (obligatorio).
  • \n
  • Segundo parámetro — el índice del elemento (opcional).
  • \n
  • Tercer parámetro — el propio array (rara vez necesario).
  • \n
\n\n
[10, 20, 30].forEach((value, index, array) => {
console.log(`Elemento ${value} en la posición ${index} del array [${array}]`);
});
\n\n

Método n.º 3: for...of — moderno y elegante

\n\n

Apareció en ES6 (2015) y rápidamente se ganó el cariño de los desarrolladores. Funciona no solo con arrays, sino también con cualquier objeto iterable (strings, Set, Map).

\n\n
const fruits = ['manzana', 'plátano', 'naranja'];
for (const fruit of fruits) {
console.log(`Fruta: ${fruit}`);
}
\n\n

Principal ventaja: se puede usar break y continue. Además, el código se ve limpio y legible.

\n\n

Cómo obtener el índice en for...of

\n

Si necesitas el índice, usa el método entries():

\n\n
for (const [index, fruit] of fruits.entries()) {
console.log(`Fruta n.º ${index + 1}: ${fruit}`);
}
\n\n

Método n.º 4: map — cuando necesitas crear un nuevo array

\n\n

Si no solo quieres recorrer, sino transformar cada elemento y obtener un nuevo array de la misma longitud, usa m

Blogs

Book Recommendations