Oi, Vitor.
Meus parabéns por concluir este exercício de forma tão completa. É muito satisfatório ver como você elevou o desafio de arrays para um nível de aplicação real, demonstrando um domínio bom sobre JavaScript assíncrono, manipulação de listas e validação de dados.
A sua resolução mostra que você compreendeu perfeitamente como acessar e modificar elementos, utilizando a lógica de índices de forma precisa. O uso de Promise e async/await para lidar com a interface de leitura torna o seu código muito mais moderno e alinhado com o que o mercado utiliza hoje.
Pontos bacanas:
- Lógica de índices: Você aplicou corretamente o conceito de que arrays em JavaScript começam no índice 0, acessando o segundo item com
listaCompras[1] e o último com listaCompras.length - 1. - Modularização: Separar as responsabilidades em funções como
validarTexto, alterarUltimo e imprimirLista facilita muito a leitura e a manutenção futura do código. - Tratamento de erros e validação: O uso de
try/catch e a validação com expressões regulares (regex) garantem que a aplicação não quebre com entradas inesperadas, o que demonstra maturidade no desenvolvimento. - Interface amigável: A função
aguardarLista com setTimeout cria uma experiência de uso mais fluida, simulando um processamento real.
Conseguiu perceber como a estrutura de repetição while(true) combinada com o break é um jeito muito bacana de criar menus e interações que dependem da decisão do usuário?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!