Questão de Programação — JavaScript — FGV 2024
- 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
- A1
- B2
- C3
- D4
- E5
GabaritoE — 5
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.
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.
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.
Assim como as anteriores, desconsidera os últimos dois números (4 e 5) que também são capturados.
Falta capturar a última ocorrência (o '5'), que é perfeitamente válida, pois (t*) aceita zero 't'.
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