1
resposta

[Projeto] Exercício: Exibindo nomes com for...of

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();
1 resposta

[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();