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;
};
};
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;
};
};
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.