1
resposta

[Dúvida] Função do "of" dentro do "for"

Qual é a função do "of" dentro do "for"? Por exemplo:

    for (let numero of array) {
        if (numero % 2 === 0) {
            somaPares += numero;
        } else {
            produtoImpares *= numero;
        };
    };
1 resposta

Oii, Arthur.

Quando você vê esse for (let numero of array) { ... }, o of está dizendo:
“Ei, JavaScript, em vez de me dar o índice (posição), me dê direto o valor que está dentro do array.”

Usando o seu código de exemplo:

for (let numero of array) {
    if (numero % 2 === 0) {
        somaPares += numero;   // se for par, soma
    } else {
        produtoImpares *= numero;  // se for ímpar, multiplica
    }
}

Aqui o numero já vem pronto: 2, 5, 8, etc.
Você não precisa ficar fazendo array[i] o tempo todo. Bem mais limpo, né? ✨

Comparando com o for...in

  • for...in devolve os índices (0, 1, 2, …).
  • for...of devolve os valores (10, 20, 30, …).
let numeros = [10, 20, 30];

for (let i in numeros) {
    console.log(i); // mostra: 0, 1, 2
}

for (let valor of numeros) {
    console.log(valor); // mostra: 10, 20, 30
}

Resumindo de forma bem simples:
O of faz o laço trabalhar com os valores dentro do array em vez das posições.

Espero ter te ajudado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!