Questão de Programação — JavaScript — FUNDATEC 2023
- Código
- qq896817
- Banca
- FUNDATEC
- Órgão
- PROCERGS
- Ano
- 2023
- Nível
- Superior
- Cargo
- ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Java
- A9
- B54
- C81
- D162
- E486
GabaritoE — 486
Gabarito: letra E — 486. A função myFunction recebe um array de objetos, extrai os valores numéricos com map e depois os acumula com reduce, multiplicando o acumulador por (valor * 3) a cada iteração. Vamos calcular passo a passo.
parameter.map(p => p.value) retorna [3, 18].
reduce((c, d) => c *= d * 3, 1):
Início: c = 1, d = 3 → c = 1 * (3 * 3) = 9
Segunda: c = 9, d = 18 → c = 9 * (18 * 3) = 9 * 54 = 486
return 486.
Portanto, console.log imprime 486.
9 — Esse valor corresponde apenas ao resultado da primeira iteração do reduce (ignorando o segundo elemento). O correto é 486.
54 — Esse valor seria obtido se o reduce apenas multiplicasse os valores diretamente (3 * 18) sem multiplicar cada um por 3. O código multiplica cada valor por 3 antes de acumular.
81 — Esse valor poderia vir de 3³ * 3, mas não corresponde ao cálculo correto. O reduce começa em 1 e aplica d*3 para cada elemento.
162 — Esse valor seria o resultado de 3*3 * 18 (sem multiplicar o 18 por 3). O código faz 18 * 3 = 54 antes da multiplicação.
486 — Resultado final do reduce conforme cálculo acima.
Em reduce, o segundo argumento (valor inicial) é crucial. Se omitido, o primeiro elemento do array vira o acumulador inicial. Aqui, com 1 e a multiplicação por d*3, chegamos a 486. Leia sempre o código com atenção.
Gabarito: letra E.
Link permanente: /questoes/qq896817