Analise o código JavaScript a seguir. const valores = [4, 3, 2, 1, 0]; let xpto = ""; valores.forEach(fF); alert (xpto); function fF(value, index) { xpto += index + ":" + value + ">"; } A execução desse código exibe:
- A)4:4>
Errada, porque o primeiro item do array tem índice 0 e valor 4, não produzindo apenas 4:4>.
- B)4:0>3:1>2:2>1:3>0:4>
Errada, pois embora siga a ordem dos índices, os valores aparecem invertidos em relação ao array, o que não acontece.
- C)0:4>1:3>2:2>3:1>4:0>
Certa, porque o forEach percorre do índice 0 ao 4 e a função concatena índice e valor de cada posição nessa ordem.
- D)0:0>
Errada, porque não há repetição de 0:0, já que o primeiro elemento do array é 4, e não 0.
- E)0:0>1:1>2:2>3:3>4:4>
Errada, porque os índices crescem de 0 a 4, mas os valores não são iguais aos índices neste array.
Gabarito: C
Em JavaScript, o método forEach percorre o array na ordem natural dos elementos, do índice 0 ao último. A cada passagem, ele chama a função de callback passando, entre outros parâmetros, o valor e o índice do elemento atual. Aqui, a função fF concatena no texto a dupla index + ":" + value + ">". Como o array valores é [4, 3, 2, 1, 0], o primeiro elemento tem índice 0 e valor 4, depois vem índice 1 e valor 3, e assim por diante. Então a string montada fica "0:4>1:3>2:2>3:1>4:0>". Ou seja, o código não imprime os valores em ordem crescente nem inverte a sequência. Ele respeita a ordem do array e usa o índice original de cada posição. Esse comportamento é bem clássico do forEach: ele não altera a ordem, só visita elemento por elemento. Por isso, o gabarito é a alternativa C. A saída exibida pelo alert é exatamente a concatenação dos índices com os respectivos valores na ordem em que aparecem no array.