Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Minhas resoluções para o exercício de dias (mensagem de fim de semana).

Fala, rapaziada! Tudo bem?

Aqui falarei sobre a questão: Pergunte ao usuário qual é o dia da semana. Se a resposta for "Sábado" ou "Domingo", mostre "Bom fim de semana!". Caso contrário, mostre "Boa semana!".

Nesse exercício, montei mais de um código. Sendo o primeiro feito totalmente de cabeça e o segundo analisando algumas questões que poderiam melhorar, pesquisando meios para otimiza-las. Busquei também utilizar mais Template Strings.

Com base na situação proposta, essa foi minha resolução:

//Pergunte ao usuário qual é o dia da semana. Se a resposta for "Sábado" ou "Domingo", mostre "Bom fim de semana!". Caso contrário, mostre "Boa semana!".

alert('Teste de funcionalidade para mensagens semanais.');

let diaUsuario = prompt('Escreva em qual dia da semana estamos (EX: Sábado):');
console.log(`Resposta do usuário: ${diaUsuario}`);

//Convertendo o valor em maiúsculas para situações como: Sábado, sábado, SÁBADO e etc.
diaUsuario = diaUsuario.toUpperCase();
console.log(`Resposta convertida: ${diaUsuario}`);

//Caso o usuário digite Sábado OU Domingo.
if (diaUsuario === 'SÁBADO' || diaUsuario === 'DOMINGO') {
    console.log(`${diaUsuario} é no fim de semana.`);
    alert('Tenha um ótimo fim de semana!');
//Caso o usuário digite qualquer outro dia (ou qualquer outra coisa rs).
} else {
    console.log(`${diaUsuario} é um dia da semana.`);
    alert('Tenha uma boa semana!');
}

Após o usuário escrever o dia, faço uma conversão de todo o texto para maiúscula. Sendo assim é possível escrever:
Domingo, domingo, DOMINGO, DoMiNgO e etc. Que o resultado gerando no código será o mesmo: DOMINGO.

Com a conversão feita, entramos na estrutura condicional. O if irá verificar se a variável trouxe as palavras "SÁBADO" ou "DOMINGO" e retornar a mensagem de fim de semana.
Caso a variável tenha outro dia ou qualquer valor diferente dos citados acima, irá para o else com a mensagem de boa semana.

Brincando um pouco mais com o código, pedi a ajuda da Luri e aumentamos a verificação da variável:

diaUsuario = diaUsuario.toUpperCase().trim().normalize("NFD").replace(/[\u0300-\u036f]/g, '');

Agora, além de deixar em maiúscula, ele apaga todos os espaços com o ".trim()" e retira as acentuações com o ".normalize()". Esse último eu tenho que pesquisar mais sobre, apenas usei o modelo que a Luri passou e deu certo!

Também fiz a validação de campo vazio utilizando:

if (diaUsuario == '') {
    console.log('O campo está vazio.');
    alert('O campo está vazio. Atualize a página e tente novamente.');
}

Aplicando antes das condicionais de fim de semana.

Para essa atividade, foi isso que desenvolvi. Espero que com o decorrer do curso e aprendizado adquirido, eu volte nesses exercícios e os melhore.
Debugando por completo!

(Ainda pretendo validar cada dia da semana :P)

2 respostas
solução!

Oi Arthur! Tudo bem?

Parabéns pelo seu empenho e criatividade ao resolver o exercício! Você fez um ótimo trabalho ao pensar em diferentes formas de otimizar o código e torná-lo mais robusto.

A utilização de métodos como toUpperCase(), trim(), e normalize() é uma excelente maneira de garantir que o programa funcione corretamente independentemente da forma como o usuário insere o dia da semana.

Além disso, a validação para campo vazio é uma ótima prática, pois melhora a experiência do usuário ao lidar com possíveis erros de entrada.

Uma pequena sugestão seria adicionar uma mensagem de erro caso o usuário digite algo que não seja um dia da semana, para tornar o feedback ainda mais claro. Por exemplo:

if (diaUsuario === '') {
    console.log('O campo está vazio.');
    alert('O campo está vazio. Atualize a página e tente novamente.');
} else if (diaUsuario === 'SÁBADO' || diaUsuario === 'DOMINGO') {
    console.log(`${diaUsuario} é no fim de semana.`);
    alert('Tenha um ótimo fim de semana!');
} else if (['SEGUNDA', 'TERÇA', 'QUARTA', 'QUINTA', 'SEXTA'].includes(diaUsuario)) {
    console.log(`${diaUsuario} é um dia da semana.`);
    alert('Tenha uma boa semana!');
} else {
    console.log('Entrada inválida.');
    alert('Por favor, insira um dia da semana válido.');
}

Isso ajuda a garantir que o usuário insira uma entrada válida. Continue explorando e testando novas ideias!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Isso mesmo que estava procurando! Irei colocar em prática o exemplo que você me deu.

Muito obrigado, Armano!