BUCLES E ITERACIONES EN JAVASCRIPT
Un bucle suele identificarse con una acción que se repite un número finito de veces. Los bucles son un recurso muy útil para eso , sin embargo, si no se establecen bien los límites pueden generar efectos no deseados o incluso bloquear el sistema.
En javascript dispones de cuatro estructuras para realizar procesos iterativos.
Estructura FOR
Los bucles formados por esta estructura o sentencia se caracterizan porque todo su contenido se ejecuta un número predefinido de veces hasta que la condición de finalización se cumpla
Estos se componen de tres expresiones y tienen un rango de número de iteraciones de cero a N, es decir que puede que no se ejecute ni una sola vez si la condición de entrada no se cumple.
- La primera expresion, inicia la variable que será utilizada como contadores
- La segund expresion, indica cuando o en que momento debe detenerse el proceso iterativo
- la tercera expresión es la que produce una acción de incrementeo o decremento cada vez que se inicie un nuevo ciclo
for(primera_expresion; segunda_expresion; tercera_Expresion){
instrucciones a realizar
}
En código real
for (let i = 0; i < 10; i++){
console.log(i); // imprime en consola -> 0 1 2 3 4 5 6 7 8 9
}
Estructura FOR… IN
Esta variación del bucle for estándar permite iterar un objeto a través de sus nombres de propiedades enumerables. Los objetos iterables por esta sentencia pueden ser matrices, mapas, argumentos, conjunto de datos. Por cada propiedad que se captura, Javascript ejecuta su contenido hasta que no haya mas propiedades que capturar.
var arr = [1,1,2,3,5,8];
for ( var x in arr ) {
console.log("X: ", x); // Devuelve "X: 0" hasta "X: 9"
}
Esta forma de recorrer los objetos es muy comoda, aunque no es recomendable para objetos muy grandes, debido a que el rendimiento puede bajar exponencialmente.
Estructura FOR..OF
Esta variación del bucle For estandar permite iterar un objeto a través de sus valores enumerables. Los objetos iterables por esta sentencia puede ser matrices, mapas, argumentos, conjunto de datos.. Por cada propiedad que se captura, Javascript ejecuta su codigo hasta que no hay mas valores que capturar.
var arr = [1,1,2,3,5,8];
for ( var x of arr ) {
console.log("X: ", x); // Devuelve "1,1,2,3,5,8
}
Esta forma de recorrer los objetos es muy comoda, aunque no es recomendable para objetos muy grandes, debido a que el rendimiento puede bajar de forma abrumadora.
Estructura FOREACH
Los bucles formados por esta estructura se caracterizan porque ejecutan una función de callback en cada iteración. En javascript , este tipo de bucles tiene un rendimiento más alto que la iteración a través del bucle for. De hecho, en situaciones normales, esta estructura es hasta un 66 por ciento mas rapida de media, Sin embargo si se trabaja con objetos muy grandes la distancia de tiempos entre el ForEach y for puede no ser relevante.
var miArray = [ 2, 4, 6, 8, 10 ];
miArray.forEach( function(valor, indice, array) {
console.log("En el índice " + indice + " hay este valor: " + valor);
});
Estructura Do..While
Los bucles formados por esta estructura o sentencia se caracterizan porque todo su contenido se ejecuta un número impredecible de veces hasta que la condición de finalización se cumpla
Los procesos iterativos definidos a traves de la sentencia do..while se componen únicamente de una expresión condicional y tienen un rango de números de iteraciones de uno a N , es decir que siempre se ejecutara su contenido, al menos una vez.
la expresión suministrada en la condición puede ser tan compleja como se desee, sim embargo, si no se define bien puede provocar bucles infinitos y bloquear la aplicación o el sistema.
var x = 0;
do {
x += 1;
console.log("X: ", x);
} while ( x < 10 );
Estructura While
Los bucles formados por esta estructura o sentencia se caracterizan porque todo su contenido se ejecuta un número impredecible de veces hasta que la condición de finalización se cumpla.
A diferencia con la estructura do…While, la condicion se evalúa antes de entrar y , precisamente por esta razón, el rango de número de iteraciones es de Cero a N, ya que puede qu no se ejecute ni una sola vez si la condición de entrada no se cumple.
Los procesos iterativos definidos a traves de la sentencia while se componen unicamente, de una expresión condicional. Dicha expresión puede ser tan compleja como se desee, sin embargo, si no se define bien puede provocar bucles infinitos y bloquear la aplicación o el sistema.
let x = 0;
while( x < 10 ) {
x +=1;
console.log("X: ", x );
}
Material extraido de : Fernandez Casado, Pablo(2020) Domine Javascript . Rama