Pular para o conteúdo principal

Questão de Programação — JavaScript — FUNDATEC 2023

ProgramaçãoJavaScript
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
Analise o seguinte trecho de código em Javascript:function myFunction(parameter) {const a = parameter.map(p => {return p.value})const b = a.reduce((c, d) => {return c *= d * 3}, 1)return b}console.log(myFunction([{ name: 'a', value: 3 }, { name : 'b', value: 18 }]))O que será impresso na saída padrão?
  1. A9
  2. B54
  3. C81
  4. D162
  5. E486
Revelar gabarito e comentário

GabaritoE — 486

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Análise do código JavaScript

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.

  1. parameter.map(p => p.value) retorna [3, 18].

  2. reduce((c, d) => c *= d * 3, 1):

    • Início: c = 1, d = 3c = 1 * (3 * 3) = 9

    • Segunda: c = 9, d = 18c = 9 * (18 * 3) = 9 * 54 = 486

  3. return 486.

Portanto, console.log imprime 486.

  1. 1map extrai [3, 18]
  2. 2c=1, d=3 → 1*(3*3)=9
  3. 3c=9, d=18 → 9*(18*3)=486
  4. 4return 486
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

9 — Esse valor corresponde apenas ao resultado da primeira iteração do reduce (ignorando o segundo elemento). O correto é 486.

Alternativa B — ❌ Incorreta

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.

Alternativa C — ❌ Incorreta

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.

Alternativa D — ❌ Incorreta

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.

Alternativa E — ✅ Correta ⟵ GABARITO

486 — Resultado final do reduce conforme cálculo acima.

PEGA ESSA DICA!

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