Também é possível realizar o aninhamento de estruturas de repetição.
Estrutura de repetição
- while: Verifica a condição antes da execução. Executa as instruções enquanto a condição for verdadeira, até que a condição se torne falsa.
count = 1;
while(count <= 3){
console.log(count); // 1, 2, 3
count++;
}
count = 1;
do {
console.log(count); // 1
} while (count == 0);
Sendo assim, executa as iterações somente e enquanto a condição for verdadeira.
for(let index = 0; index < array.length; index++){
console.log('index: ' + index + ', value: ' + array[index]);
}
for(let i = 0; i <= 3; i++){
console.log(i); // 0, 1, 2, 3
}
Iteração sobre todas as propriedades enumeráveis, por index (array) ou por properties (object).
let array = [1,2,3,4,5];
for(index in array){
console.log(index + ': ' + array[index]);
}
let word = 'Hello World';
for(letter in word){
console.log(letter);
}
let obj = {name: 'João', age: 20, gender: 'M'};
for(prop in obj){
console.log("obj." + prop + " = " + obj[prop]);
}
Iteração por value (array and object).
let array = [1,2,3,4,5];
for(value of array){
console.log(value);
}
let word = 'Hello World';
for(letter of word){
console.log(letter);
}
OBS: Objetos não são iterables, portanto, for...of somente funciona passando a propriedade do objeto na condição. A iteração se dá em cima da propriedade.
OBS: No for...in e for...of não é necessaŕio declarar o tipo da variável de iteração, pois trata-se de uma variável de estado. Pesquisar mais...
Operadores
- continue: Permite pular uma iteração
let arr = [1,2,3,4,5];
for(let index = 0; index < arr.length; index++){
if(arr[index] % 2 == 0){
continue; // Pular (não imprimir) pares
}
console.log('Index: ' + index + ', Value: ' + arr[index]);
}
count = 1;
while(true){
count ++;
console.log(count);
if(count == 4){
console.log(count + ': Interrompendo um loop infinito');
break;
}
}