freeCodeCamp/guide/portuguese/javascript/es6/for-of/index.md

99 lines
2.6 KiB
Markdown
Raw Normal View History

---
title: for-of loop
localeTitle: loop for-of
--- ## for-of Loop
for-of loop pode ser usado para iterar sobre as coisas que não são arrays, mas são iteráveis como uma coleção DOM, string, set, argumentos ou mapa.
```javascript
const fruits = ['Orange','Apple','Grapes','Banana'];
for (const fruit of fruits)
{
console.log(fruit);
}
```
O snippet acima vai nos devolver os itens na matriz acima.
## for-of loop em saber índice
E se quisermos saber o índice de cada item também. Nesse caso, podemos iterar sobre fruits.entries (), que nos fornece o ArrayIterator.
```javascript
for (const fruit of fruits.entries())
{
console.log(fruit);
}
```
No trecho acima, a fruta será uma matriz com dois itens. O item 0 vai conter o índice e o primeiro item conterá o nome real da fruta. A saída seria como:
```
[0, "Orange"]
[1, "Apple"]
[2, "Grapes"]
[3, "Banana"]
```
Podemos ainda desestruturar frutas como abaixo:
```javascript
for (const [index,fruit] of fruits.entries())
{
console.log(index,fruit);
}
```
## for-of loop em iterar sobre número desconhecido de argumentos
for-of loop é muito útil para iterar sobre o número desconhecido de argumentos para uma função.
Suponha que queremos adicionar os números que são passados para uma função e o número de argumentos não é fixo.
'arguments' é uma palavra-chave especial em javascript que nos fornece o tipo Array-ish (não array) e nos fornece todos os argumentos.
```javascript
function addNumbers()
{
let sum = 0;
for (const num of arguments)
sum+=num;
return sum;
}
addNumbers(1, 2, 3, 4, 5); // 15
```
Aqui argumentos não é um array verdadeiro ainda podemos iterar sobre ele usando for-of loop.
## for-of loop to iterate over string
Podemos usar loop for-to iterate over string para nos dar caractere por caractere da string.
```javascript
const name = 'John Doe';
for (const char of name)
console.log(char);
```
que resulta na seguinte saída: caracteres 'J', 'o', 'h', 'n', '', 'D', 'o', 'e'
## loop for-to iterate sobre a coleção DOM
Coleções do DOM não são o tipo de array verdadeiro. Eles são geralmente NodeList para a maioria dos navegadores. Se criarmos um número de parágrafos e quisermos iterar sobre eles para designar algum evento em cada parágrafo, podemos fazer uso de loop for-of.
```javascript
const paragraphs = document.querySelectorAll('p');
```
Aqui, os parágrafos são um NodeList que pode ser iterado usando o loop for-of.
```javascript
for (const para of paragraphs)
{
console.log(para);
// We can add event listeners to each para here
}
```