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.
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:
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.
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
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í.
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
.
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
.
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.
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
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.
forEach puede ser usado del lado del cliente y del lado del servidor.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.