Tipos de bucles en JavaScript - SoniaHarry/Course-Checkpoint-8 GitHub Wiki

¿Qué tipo de bucles hay en JS?

JavaScript soporta varios tipos de bucles, a continuación se muestra cada tipo:

  • FOR

Sintaxis:

for (expresion1; expresion2; expresion3) {
  // bloque de código a ejecutar
}

$\color{blue}expresion1$ -> Se ejecuta (una vez) antes de la ejecución del bloque de código.

$\color{blue}expresion2$ -> Define la condición para ejecutar el bloque de código.

$\color{blue}expresion3$ -> Se ejecuta (cada vez) después de que se haya ejecutado el bloque de código.

Ejemplo:

let text=""; //Se inicializa la variable
for (let i = 0; i < 5; i++) {
  text += "The number is " + i + "\n";
}
console.log(text);

/* Devuelve:
"The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
"
*/

Analicemos este caso:

$\color{blue}expresion1$ -> let i = 0 Se usa para inicializar la variable inicial

NOTA: Deberíamos saber que se pueden inicializar en la expresion1 varios valores siempre separados por una coma.

Ejemplo:

const cars = ["BMW", "Volvo", "Saab", "Ford"]; //Se inicializa el array
for (let i = 0, len = cars.length, text = ""; i < len; i++) {
  text += cars[i] + "\n";
  console.log(text);
}

El ejemplo anterior en la $\color{blue}expresion1$ -> let i = 0, len = cars.length, text = ""; se inicializan las variables i, len y text. cars.length devuelve la longitud del array (4) y en cada vuelta del bucle la variable text devolverá unos resultados:

Primera vuelta -> i=0 -> "BMW"

Segunda vuelta -> i=1 -> "BMW Volvo " Tercera vuelta -> i=2 -> "BMW Volvo Saab "

Cuarta vuelta -> i=3 -> "BMW Volvo Saab Ford "

IMPORTANTE: En el ejemplo anterior si llamamos a console.log(text); fuera del bucle nos devolverá el siguiente $\color{red}error$.

Uncaught ReferenceError: text is not defined 
 at https://cdpn.io/cpe/boomboom/pen.js?key=pen.js-7b90d2fe-2bea-6863-488d-52f25630de0c:9

NOTA: También deberíamos saber que la expresion1 es opcional, por lo que si no se define expresion1 habrá que inicializar la variable inicial antes del bucle.

Ejemplo:

let text="";
let i = 0
for (; i < 5; i++) {
  text += "The number is " + i + "\n";
}
console.log(text);
/* Devuelve
"The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
"
*/

$\color{blue}expresion2$-> i < 5 Se usa para evaluar la condición de la variable inicial. Si la expresion2 es verdadera el ciclo comenzará de nuevo, si la expresion2 devuelve falso el ciclo finalizará.

NOTA: La expresion2 es opcional. Pero es IMPORTANTE que dentro del bucle exista la instrucción break que provoca una interrupción del bucle, ya que sino el bucle nunca terminaría provocando que el navegador se bloquee.

$\color{blue}expresion3$ -> i++ Se usa para incrementar el valor de la variable inicial, aunque puede hacer cualquier cosa; incrementar, decrementar, ...

NOTA: La expresión3 es opcional. Pero habrá que incrementarla o realizar la operación que sea dentro del bucle. Ejemplo:

Ejemplo:

let text="";
for (let i = 0; i < 5;) {
  text += "The number is " + i + "\n";
  i++
}
console.log(text);
/* Devuelve
"The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
"
*/

  • FOR IN

Sintaxis:

for (key in object) {
  // bloque de código a ejecutar
}

Ejemplo:

const client = {name:"John", surname:"Doe", age:25};

let text = "";
for (let c in client) {
  text += client[c];
}
console.log(text);
/* Devuelve
"JohnDoe25"
*/

Analicemos este caso:

En este caso el bucle for interatua sobre el objeto $\color{blue}client$. Cada iteración devuelve una clave $\color{blue}c$ (name, surname,...) La clave se utiliza para acceder al valor, es decir, $\color{blue}client[c]$ (client['name'], ...)

NOTA: Además utilizando for in se pueden recorrer las propiedades de una matriz.

Ejemplo:

const numbers = [45, 4, 9, 16, 25];

let text = "";
for (let x in numbers) {
  text += numbers[x];
}
/* Devuelve
"45491625"
*/

IMPORTANTE: No use este for in en una matriz si el orden del índice es importante. Es mejor utilizar un bucle for of ó Array.forEach() cuando el orden es importante.

Array.forEach() El método forEach() llama a una función (una función de devolución de llamada) una vez para cada elemento de la matriz.

Ejemplo:

const numbers = [45, 4, 9, 16, 25];

let text = "";
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  text += value;
}
console.log(text);
/*
"45491625"
*/

  • FOR OF

Recorre los valores de un objeto iterable. Le permite recorrer estructuras de datos iterables como matrices, cadenas, listas ...

Sintaxis:

for (variable of iterable) {
  // bloque de código a ejecutar
}

$\color{blue}variable$ -> Para cada iteración, el valor de la siguiente propiedad se asigna a la variable. La variable se puede declarar con const, let o var.

$\color{blue}iterable$ -> Un objeto que tiene propiedades iterables como matrices, cadenas, listas ...

Ejemplo array:

const cars = ["BMW", "Volvo", "Mini"];

let text = "";
for (let x of cars) {
  text += x;
}
console.log(text);
/* Devuelve
"BMWVolvoMini"
*/

Ejemplo string:

let language = "JS";
let text = "";
for (let x of language) {
  text += x;
  console.log(x + "\n");
}
/* Devuelve
"J"
"S"
*/

  • WHILE

El bucle while recorre un bloque de código siempre que una condición especificada sea verdadera.

Sintaxis:

while (condition) {
  // bloque de código a ejecutar
}

Ejemplo:

let text="";
let i=3;
while (i < 10) {
  text += "The number is " + i + "\n";
  i++;
}
console.log(text);
/* Devuelve
"The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
"
*/

Analicemos este caso:

$\color{blue}condition$ -> i < 10 . El código del bucle se ejecutará una y otra vez, siempre que la variable (i) sea menor que 10.

NOTA: Recuerde incrementar el valor de la variable usada en la condición ( i++; ) porque sino el bucle nunca terminará y estaríamos delante de un bucle infinito.


  • DO WHILE

Este bucle es una variante del bucle while. Este bucle ejecutará el bloque de código una vez, antes de verificar si la condición es verdadera, luego repetirá el bucle mientras la condición sea verdadera.

Sintaxis:

do {
  // bloque de código a ejecutar
}
while (condition);

Ejemplo:

El siguiente ejemplo utiliza un bucle do while. El bucle siempre se ejecutará al menos una vez, incluso si la condición es falsa, porque el bloque de código se ejecuta antes de que se pruebe la condición.

let text="";
let i=3;
do {
  text += "The number is " + i;
  i++;
}
while (i < 10);
/* Devuelve
"The number is 3 The number is 4 The number is 5 The number is 6 The number is 7 The number is 8 The number is 9 "
*/

IMPORTANTE: Recuerde incrementar el valor de la variable usada en la condición ( i++; ) porque sino el bucle nunca terminará y estaríamos delante de un bucle infinito.


📚REFERENCIAS:

https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Loops_and_iteration

https://www.freecodecamp.org/espanol/news/javascript-bucles-explicados-for-while-loops/

https://www.w3schools.com/js/js_loop_for.asp

https://www.w3schools.com/js/js_loop_forin.asp

https://www.w3schools.com/js/js_loop_forof.asp

https://www.w3schools.com/js/js_loop_while.asp

⚠️ **GitHub.com Fallback** ⚠️