Intento entender los bucles for anidados en javascript , pero es muy confuso.
Tengo este código y no puedo entender cómo funciona:
let n = 5; for (let i = 0; i < n; i++) { for (let j = 0; j < i; j++) { console.log(j); }}En la consola tengo: 0 1 0 1 2 0 1 2 3
Y estoy tratando de averiguar qué ciclo representa cada número.
Ejecuta este código:
let n = 5; let str = ''; for (let i = 0; i < n; i++) { for (let j = 0; j < i; j++) str += j; console.log("Outer: "+i+" Inner: "+str); str = ''; }La salida es:
Outer: 0 Inner: Outer: 1 Inner: 0 Outer: 2 Inner: 01 Outer: 3 Inner: 012 Outer: 4 Inner: 0123 Como puede ver, en el resultado anterior, el ciclo interno (el que tiene la variable j ) no se ejecuta, porque si reemplaza las variables con números, sería 0 < 0 (i < 0), lo cual no es cierto.
La mejor manera de comprender cómo funcionan los bucles anidados es escribir cada paso y los valores de las variables en el papel, así:
norte = 5
PASO 1:
"Outer: 0 Inner:"PASO 2:
"Outer: 1 Inner: 0"Y así sucesivamente... Sigue repitiendo esto hasta que el argumento en el bucle exterior sea falso (i < n).
Debes recordar, en for loop la secuencia de órdenes ejecutadas:
for(let i = 0; i < 5; i++) { console.log('It works'); }sea i = 0; (esto se ejecuta solo una vez)
i < 5 (si es cierto ejecutar 3 y 4)
ejecutar el código en bucle
yo ++
i < 5 (si es verdadero ejecutar 6 y 7)
ejecutar el código en bucle
yo ++
etc.