← Questões de Programação

Programação · FGV · 2021

Questão comentada de Programação

Considere a função xpto em código JavaScript. function xpto (s) { let text = "" for (const x of s) { text = x + text; } return text; } A expressão xpto("banana" + "laranja") retorna:

Gabarito: D

A função xpto percorre a string caractere por caractere com o laço for...of. Em cada volta, ela faz uma coisa simples, mas traiçoeira: coloca o caractere atual na frente do que já havia sido montado. Ou seja, ela vai invertendo a ordem do texto, como quem lê um bilhete no espelho. Se você aplica isso a "banana" + "laranja", primeiro a concatenação forma "bananalaranja". A partir daí, a função lê letra por letra e reconstrói tudo de trás para frente. O primeiro caractere lido vira o último da nova string, e assim por diante. Então o resultado final é a string invertida de "bananalaranja", que fica "ajnaralananab". É exatamente por isso que a alternativa D está correta. Em JavaScript, isso acontece de forma bem direta porque o for...of percorre a string em ordem natural dos caracteres, e a atribuição text = x + text inverte a montagem. Resumo de prova: concatenou antes, inverteu depois. Parece inocente, mas a função é uma pequena máquina de fazer espelho.

Continue treinando

Questões relacionadas