4Geeks chosen to deliver AI education in the Bahamas alongside Harvard, Oxford, and Columbia.See more

¿Cómo usar el método Foreach en Javascript?

By 4Geeks

Recorre arrays, objetos, Map y elementos del DOM con forEach(), aprende cuándo usar map() o for...of y evita los errores típicos.

7 min readLast updated
Icono del método forEach en JavaScript

¿Cómo funciona el método forEach() en JavaScript?

Respuesta corta: forEach() recorre un array y ejecuta una función una vez por cada elemento, en orden. La función recibe el elemento actual, su índice y el array completo. forEach() no devuelve nada (undefined), así que úsalo para hacer algo con cada elemento: mostrarlo, guardarlo o pintarlo en la página.

javascript
const animales = ["perro", "gato", "pez"];
 
animales.forEach((animal, indice) => {
  console.log(indice, animal);
});
// 0 perro
// 1 gato
// 2 pez

Si lo que necesitas es un array nuevo, usa map(). Si quieres quedarte solo con algunos elementos, usa filter().

forEach() ejecuta la función en cada elemento y devuelve undefined. Para transformar un array en otro, usa map().

Sintaxis de forEach()

javascript
array.forEach((elementoActual, indice, array) => {
  // lo que quieras hacer con cada elemento
});
ParámetroQué es¿Obligatorio?
elementoActualEl elemento del array en esta vueltaSí
indiceLa posición del elemento, empezando en 0No
arrayEl array completo que se está recorriendoNo

forEach() siempre devuelve undefined y se salta las posiciones vacías de un array con huecos, como [1, , 3]. No cambia el array por sí mismo, pero la función que le pasas sí puede modificar los objetos que contiene.

Ejemplos de forEach() en JavaScript

Mostrar cada elemento con su posición

javascript
const tareas = ["Estudiar", "Programar", "Descansar"];
 
tareas.forEach((tarea, i) => {
  console.log(`${i + 1}. ${tarea}`);
});
// 1. Estudiar
// 2. Programar
// 3. Descansar

Sumar los elementos de un array

javascript
const precios = [12, 30, 8];
let total = 0;
 
precios.forEach((precio) => {
  total += precio;
});
 
console.log(total); // 50

Para sumar, precios.reduce((suma, p) => suma + p, 0) hace lo mismo en una línea. Lo tienes explicado en cómo usar reduce() en JavaScript.

Actualizar los objetos de un array

javascript
const alumnos = [
  { nombre: "Ana", nota: 80 },
  { nombre: "Luis", nota: 90 },
];
 
alumnos.forEach((alumno) => {
  alumno.nota += 5;
});
 
console.log(alumnos);
// [ { nombre: 'Ana', nota: 85 }, { nombre: 'Luis', nota: 95 } ]

Esto cambia los objetos originales. Si necesitas conservarlos, crea copias con map().

Crear una lista en la página (DOM)

javascript
const productos = ["Laptop", "Audífonos", "Monitor"];
const lista = document.querySelector("#lista");
 
productos.forEach((producto) => {
  const li = document.createElement("li");
  li.textContent = producto;
  lista.appendChild(li);
});

document.querySelectorAll() devuelve una NodeList, que también tiene forEach():

javascript
document.querySelectorAll("button").forEach((boton) => {
  boton.addEventListener("click", () => console.log("clic"));
});

Recorrer un objeto

Los objetos no tienen forEach(). Conviértelo antes en un array con Object.entries():

javascript
const usuario = { nombre: "Ana", edad: 30 };
 
Object.entries(usuario).forEach(([clave, valor]) => {
  console.log(`${clave}: ${valor}`);
});
// nombre: Ana
// edad: 30

Recorrer un Map

javascript
const stock = new Map([["manzanas", 10], ["peras", 4]]);
 
stock.forEach((cantidad, fruta) => {
  console.log(fruta, cantidad);
});
// manzanas 10
// peras 4

En un Map, la función recibe primero el valor y después la clave. Los Set también tienen forEach().

Carrera · Ingeniería de IA para Desarrolladores

Ya dominas forEach(), ahora crea con IA

Si ya programas, aprende a crear agentes de IA, sistemas RAG y aplicaciones con LLMs, con mentores y proyectos reales.

forEach() frente a map(), filter(), reduce() y for...of

MétodoQué devuelve¿Se puede parar?Úsalo para
forEach()undefinedNoHacer algo con cada elemento
map()Un array nuevo del mismo tamañoNoTransformar cada elemento
filter()Un array con los elementos que cumplen la condiciónNoQuedarte con algunos
reduce()Un solo valorNoSumar, contar o agrupar
for...ofNada, es un bucleSí, con breakRecorrer con control total o con await

Este ejemplo crea el mismo array con forEach() y con map():

javascript
const numeros = [1, 2, 3];
 
const dobles1 = [];
numeros.forEach((n) => dobles1.push(n * 2));
 
const dobles2 = numeros.map((n) => n * 2);
 
console.log(dobles1, dobles2); // [ 2, 4, 6 ] [ 2, 4, 6 ]

Con map() no necesitas el array auxiliar ni el push().

Cómo salir de un forEach()

forEach() no se puede detener. break da SyntaxError: Illegal break statement y return solo salta a la vuelta siguiente. Si necesitas parar, usa un bucle for...of o los métodos some(), every() o find():

javascript
const numeros = [3, 7, 12, 5];
 
for (const n of numeros) {
  if (n > 10) break;
  console.log(n);
}
// 3
// 7
 
const hayMayor = numeros.some((n) => n > 10);
console.log(hayMayor); // true

forEach() con async/await

forEach() no espera a las promesas. Si le pasas una función async, todas las vueltas arrancan a la vez y el código de después se ejecuta antes de que terminen:

javascript
const ids = [1, 2, 3];
 
// ❌ No espera
ids.forEach(async (id) => {
  await guardar(id);
});
console.log("listo"); // se imprime antes de guardar nada
 
// ✅ Una detrás de otra
for (const id of ids) {
  await guardar(id);
}
 
// ✅ Todas a la vez, esperando a que terminen
await Promise.all(ids.map((id) => guardar(id)));

Usa forEach() con IA

Un asistente como ChatGPT, Claude o GitHub Copilot escribe un forEach() en segundos y, sobre todo, te dice si te conviene otro método. Estos tres prompts están listos para copiar.

1. Recorre tus datos

Tengo este array en JavaScript: [pega un ejemplo con 3 elementos]
Quiero [mostrar cada uno en la consola / crear un <li> por cada uno / actualizar una propiedad].
Escríbelo con forEach() y explícame qué recibe la función en cada vuelta.

2. Elige el método correcto

Este código usa forEach(): [pega tu código]
¿Se leería mejor con map(), filter(), reduce() o un for...of? Reescríbelo y explícame por qué.

3. Arregla un forEach() que falla

Mi forEach() da este error o este resultado inesperado: [pega el error o lo que ves]
Este es el código: [pega tu código]
Explícame la causa y dame la corrección.

Comprueba la respuesta en la consola del navegador o en Node.js con tus datos reales.

Aprende con un mentor

De recorrer arrays a construir aplicaciones con IA

En la carrera de Ingeniería de IA para Desarrolladores de 4Geeks llevas tu JavaScript más lejos con agentes de IA, RAG y LLMs en proyectos reales.

Errores comunes con forEach()

Lo que vesPor qué pasaSolución
undefined al guardar el resultado de forEach()forEach() no devuelve nadaUsa map() para crear un array nuevo
SyntaxError: Illegal break statementbreak no funciona dentro de la función de forEach()Usa for...of, some() o find()
return no detiene el recorridoreturn solo termina la vuelta actualUsa for...of con break
TypeError: usuario.forEach is not a functionLos objetos no tienen forEach()Usa Object.entries(usuario).forEach(...)
TypeError: elementos.forEach is not a function con getElementsByClassName()Devuelve un HTMLCollection, que no tiene forEach()Usa querySelectorAll() o Array.from(elementos)
El código de después se ejecuta antes que el awaitforEach() no espera a las funciones asyncUsa for...of o Promise.all()

Guías relacionadas

Descarga gratis

El método forEach(), en una chuleta de 2 páginas

La sintaxis, recetas para arrays, objetos, Map y el DOM, cuándo usar map() o for...of, cómo salir del bucle, async/await, los errores más comunes y prompts para ChatGPT, Claude o Copilot. Gratis, en PDF.

Chuleta: método forEach() en JavaScript

2 páginas · PDF · 4Geeks

  • Recetas listas para copiar con arrays, objetos, Map y DOM
  • Qué método usar en cada caso y cómo salir del bucle
  • Los 6 errores más comunes y prompts para resolverlos con IA

Consíguela gratis

Tu PDF al instante

Preguntas frecuentes sobre forEach() en JavaScript

¿Quieres pasar de escribir JavaScript a crear aplicaciones con IA, con proyectos reales y mentores?

Ver la carrera de Ingeniería de IA para Desarrolladores