Pular para o conteúdo principal

Questão de Programação — JavaScript — FGV 2024

ProgramaçãoJavaScript
Código
fg100824
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade: Análise de Dados
Considere o seguinte código em JavaScript:const regexp = /(f+)(\d?)(t*)/g;const str = 'trf1trf2trf3trf4trf5';const array = [...str.matchAll(regexp)];console.log(array.length)Ao ser executado, o código acima imprime na saída padrão do console:
  1. A1
  2. B2
  3. C3
  4. D4
  5. E5
Revelar gabarito e comentário

GabaritoE — 5

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”.

JavaScript – Método matchAll com regex global

Gabarito: letra E. O método matchAll retorna um iterador com todas as correspondências de uma expressão regular com a flag g. Ao espalhar o iterador em um array com [...str.matchAll(regexp)], obtém-se um array cujo comprimento é o número de correspondências encontradas. No código, a regex /(f+)(\d?)(t*)/g encontra 5 correspondências na string 'trf1trf2trf3trf4trf5' — uma para cada bloco numérico de 1 a 5 —, resultando em array.length = 5.

Alternativa A — ❌ Incorreta (1)

O valor 1 seria obtido se a regex não tivesse a flag g e retornasse apenas a primeira correspondência, mas com a flag global todas as ocorrências são capturadas.

Alternativa B — ❌ Incorreta (2)

O valor 2 não corresponde a nenhuma contagem possível no padrão da string; há cinco ocorrências do padrão f\d.

Alternativa C — ❌ Incorreta (3)

Assim como as anteriores, desconsidera os últimos dois números (4 e 5) que também são capturados.

Alternativa D — ❌ Incorreta (4)

Falta capturar a última ocorrência (o '5'), que é perfeitamente válida, pois (t*) aceita zero 't'.

Alternativa E — ✅ Correta ⟵ GABARITO

O método matchAll retorna um array (via spread) com 5 correspondências: uma para cada número de 1 a 5. Cada correspondência contém o grupo f, o dígito e o t opcional (ausente no último).

💡 Dica: Para evitar confusão entre match (sem flag g retorna a primeira ou null) e matchAll (sempre retorna iterador de todas), lembre-se: matchAll exige a flag g e fornece todos os matches com grupos. O spread converte o iterador em array e .length dá o total de ocorrências.

Link permanente: /questoes/fg100824