0
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)