forEach en JavaScript - Ejemplos y sintaxis

forEach en JavaScript para recorrer arreglos

En este post te explicaré cómo usar forEach en JavaScript con algunos ejemplos. Esta función permite recorrer o iterar arreglos de todo tipo en el lenguaje JS y ahorrar algunas líneas de código si lo combinamos con las funciones flecha.

forEach en JavaScript - Ejemplos y sintaxis

forEach en JavaScript: sintaxis

Esta función puede ser invocada en todos los arreglos. La sintaxis es:

arreglo.forEach(funcion);

En donde la variable funcion es una función que será llamada o invocada por cada elemento que exista dentro del arreglo. A esa función se le pasan 3 argumentos en el siguiente orden:

  • Elemento actual
  • Índice del elemento actual, comenzando en cero
  • El arreglo en sí

No necesitamos devolver nada dentro de la función, pues usamos forEach simplemente para recorrer un arreglo en JavaScript.

Por cierto, la función puede ser anónima o tener nombre, además de que igualmente puede ser una función flecha.

Primer vistazo a forEach

Veamos un primer ejemplo. Tenemos un arreglo que puede ser de cualquier tipo; en este caso es un arreglo de cadenas o de tipo string:

const canciones = [
    "Hang onto yourself",
    "Go your own way",
    "Modern Love",
];

Vamos a definir la función que será invocada por forEach:

// Primer ejemplo, definiendo una función y luego pasándola a forEach
const funcionQueRecorre = function(cancion) {
    console.log("Tenemos una canción: ", cancion);
}

Solo nos interesa el primer argumento para imprimirlo en la consola; por el momento no necesitamos ni el índice ni el arreglo. Ahora invocamos a forEach:

canciones.forEach(funcionQueRecorre);

De este modo, por cada elemento que haya dentro del arreglo canciones, se invocará a la función llamada funcionQueRecorre. Dentro de la función, se imprime cada elemento. Al ejecutar el código, la salida es:

Tenemos una canción:  Hang onto yourself
Tenemos una canción:  Go your own way
Tenemos una canción:  Modern Love

Los 3 argumentos de forEach en JavaScript

En el ejemplo anterior solo recibimos el elemento, pero no el índice ni el arreglo. Para demostrar que las 3 cosas se pueden recibir veamos el siguiente código:

const canciones = [
    "Hang onto yourself",
    "Go your own way",
    "Modern Love",
];
// Tercer ejemplo recibiendo el arreglo
const funcionQueRecorreConIndiceYArreglo = function(cancion, indice, arreglo) {
    console.log("Tenemos la canción %s en el índice %d. El arreglo completo es %s", cancion, indice, arreglo);
}
canciones.forEach(funcionQueRecorreConIndiceYArreglo);

En este caso estamos recibiendo las 3 variables que forEach puede enviar. Al ejecutar ese código, la salida es:

Tenemos la canción Hang onto yourself en el índice 0. El arreglo completo es Hang onto yourself,Go your own way,Modern Love
Tenemos la canción Go your own way en el índice 1. El arreglo completo es Hang onto yourself,Go your own way,Modern Love
Tenemos la canción Modern Love en el índice 2. El arreglo completo es Hang onto yourself,Go your own way,Modern Love

Ahora estamos recibiendo el índice y el arreglo en sí.

forEach y funciones anónimas

No es necesario pasar el nombre de la función a forEach; se puede simplemente definir al invocar. Veamos el siguiente ejemplo:

// https://parzibyte.me/blog
const canciones = [
    "Hang onto yourself",
    "Go your own way",
    "Modern Love",
];
canciones.forEach(function(cancion) {
    console.log("Canción dentro de función anónima: ", cancion);
});

Ahora no almacenamos la función, simplemente la definimos al invocar a forEach.

Una pequeña nota

Si solo quieres imprimir los elementos, no es necesario que definas una función que imprima, pues ya existe la función console.log que imprime datos.

Por lo tanto, bastaría con llamar (y es totalmente válido) a:

canciones.forEach(console.log);

De este modo por cada canción que exista, se invocará a console.log.

Funciones flecha + forEach = código más simple

Ahora veamos cómo usar forEach en JavaScript pero combinado con las funciones flecha. Recuerda que ya hablamos sobre estas funciones en otro post.

Podemos usar las funciones flecha de dos maneras:

// https://parzibyte.me/blog
const canciones = [
    "Hang onto yourself",
    "Go your own way",
    "Modern Love",
];
// Sexto ejemplo, función flecha anónima
canciones.forEach(cancion => {
    console.log("Canción dentro de función flecha anónima: ", cancion);
});

// Séptimo ejemplo, función flecha anónima de una línea
canciones.forEach(cancion => console.log("Canción dentro de función flecha simplificada y anónima: ", cancion));

Ya sea con o sin llaves. Recuerda que si no usas las llaves se infiere que estás regresando el valor, pero como el valor de regreso no le importa a forEach, puedes regresar cualquier cosa.

Arreglos de objetos y forEach en JavaScript

Como lo dije, forEach recorre todo tipo de arreglos y siempre recibiremos el elemento del arreglo sin importar su tipo. Veamos un ejemplo de forEach para recorrer un arreglo de objetos:

// https://parzibyte.me/blog
// Noveno ejemplo, se puede recorrer cualquier arreglo
const personas = [{
        nombre: "Luis",
        edad: 23,
    },
    {
        nombre: "John Galt",
        edad: 50
    }
];
personas.forEach(persona => {
    console.log("Nombre: %s, edad: %d", persona.nombre, persona.edad);
});

Ahora la salida es:

Nombre: Luis, edad: 23
Nombre: John Galt, edad: 50

Poniendo todo junto

Una vez que expliqué el uso de forEach en JavaScript poco a poco, pondré algunos ejemplos en un mismo archivo:

/**
 * Foreach en JavaScript
 * 
 * @author parzibyte
 */
const canciones = [
    "Hang onto yourself",
    "Go your own way",
    "Modern Love",
];
// Primer ejemplo, definiendo una función y luego pasándola a forEach
const funcionQueRecorre = function(cancion) {
    console.log("Tenemos una canción: ", cancion);
}

canciones.forEach(funcionQueRecorre);
// Segundo ejemplo recibiendo el índice, igualmente con una función con nombre
const funcionQueRecorreConIndice = function(cancion, indice) {

    console.log("Tenemos la canción %s en el índice %d", cancion, indice);
}
canciones.forEach(funcionQueRecorreConIndice);

// Tercer ejemplo recibiendo el arreglo
const funcionQueRecorreConIndiceYArreglo = function(cancion, indice, arreglo) {
    console.log("Tenemos la canción %s en el índice %d. El arreglo completo es %s", cancion, indice, arreglo);
}
canciones.forEach(funcionQueRecorreConIndiceYArreglo);


// Cuarto ejemplo con función flecha
const funcionFlechaQueRecorreConIndiceYArreglo = (cancion, indice, arreglo) => {
    console.log("Tenemos la canción %s en el índice %d. El arreglo completo es %s", cancion, indice, arreglo);
}
canciones.forEach(funcionFlechaQueRecorreConIndiceYArreglo);


// Quinto ejemplo, función anónima
canciones.forEach(function(cancion) {
    console.log("Canción dentro de función anónima: ", cancion);
});

// Sexto ejemplo, función flecha anónima
canciones.forEach(cancion => {
    console.log("Canción dentro de función flecha anónima: ", cancion);
});

// Séptimo ejemplo, función flecha anónima de una línea
canciones.forEach(cancion => console.log("Canción dentro de función flecha simplificada y anónima: ", cancion));

// Octavo ejemplo, invocando a función
canciones.forEach(console.log);

// Noveno ejemplo, se puede recorrer cualquier arreglo
const personas = [{
        nombre: "Luis",
        edad: 23,
    },
    {
        nombre: "John Galt",
        edad: 50
    }
];
personas.forEach(persona => {
    console.log("Nombre: %s, edad: %d", persona.nombre, persona.edad);
});

Son todos los ejemplos en un mismo archivo.

Conclusión

forEach puede ser usado del lado del cliente y del lado del servidor.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *