[Projeto] Exercício: Exibindo nomes com for...of
Publicado 3 horas atrás
Front-end JavaScript Praticando JavaScript: arrays
Referente ao curso Praticando JavaScript: arrays, no capítulo JavaScript Arrays e atividade Exibindo nomes com for...of
Acompanhar tópico
por Vitor Hugo Farias Corrêa | 26.3k xp | 58 posts
import { createInterface } from "readline";
const rl = createInterface({
input: process.stdin,
output: process.stdout,
});
const perguntar = (pergunta) => {
return new Promise((resolve) => {
rl.question(pergunta, resolve);
});
};
const validarNome = (input) => {
if (/^[a-zA-ZÀ-ÿ\s'-]+$/.test(input) && input.length > 1) {
const nome = input.charAt(0).toUpperCase() + input.slice(1);
return nome;
}
return null;
};
const aguardarNome = (ms) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, ms);
});
};
const exibirNomes = async (listaNomes) => {
console.log("\nCHAMADA:");
// O exercício solicita especificamente o uso de for...of
for (let nome of listaNomes) {
await aguardarNome(2000);
console.log("Estudante: " + nome);
}
};
const main = async () => {
try {
console.log(
"CHAMADA ESCOLAR\nInsira os alunos participantes. ('fim' para encerrar)\n",
);
const listaNomes = [];
while (true) {
const input = (await perguntar("> ")).trim().toLowerCase();
if (input === "fim") break;
const nome = validarNome(input);
if (nome === null) {
console.log("Insira um nome válido.");
continue;
}
listaNomes.push(nome);
}
exibirNomes(listaNomes);
} catch (error) {
console.log("Algo deu errado. Reinicie a aplicação");
} finally {
rl.close();
}
};
main();