Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Duda

Realizando el ejercicio 1.

  1. let diaDeLaSemana = prompt('¿Qué día de la semana es?');
  2. if (diaDeLaSemana === 'Sábado' || diaDeLaSemana === 'Domingo') {
  3. alert('¡Buen fin de semana!');
    
  4. } else {
  5. alert('¡Buena semana!');
    
  6. }
  7. Lo que pasa es que si escribo sabado en minusculas o sin tilde ( lo cual en general los usuarios hacen eso ), me sale ¡Buena semana! pero en realidad me deberia salir ¡Buen fin de semana!, como corrijo eso. Agradeceria su respuesta.
3 respuestas
solución!

Hola, la mejor manera al momento de realizar comparativas en una condicional IF, es normalizar el texto. A que me refiero, que si el usuario te ingresa un valor, con mayusculas, con acentos , caracteres especiales etc, debes hacer una limpieza y comparar por ejemplo:

if (diaDeLaSemana === 'sabado' || diaDeLaSemana === 'domingo') { alert('¡Buen fin de semana!'); } else { alert('¡Buena semana!'); } idealmente el IF seria mas sencillo que este en minusculas, todo en el mismo formato. entonces si el usuario te ingresa un valor en tu variable diaDeLaSemana lo mas sencillo seria algo asi: diaDeLaSemana = diaDeLaSemana.toLowerCase(); con lowerCase transformas tu cadena a minuscula osea si te ingresan SABADO, llegara sabado osea igual que tu condicional. y ya esto es un poco mas avanzado al curso, ademas de poder modificar el campo lo puedes normalizar, para poder eliminar caracterez especiales. Puedes investigar sobre normalizar string y REGEX. Un ejemplo seria algo asi :

// Convertir a minúsculas y eliminar acentos diaDeLaSemana = diaDeLaSemana.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");

con esto si el usuario te ingresa SábaDo , lo que recibe tu proyecto seria : sabado. Fue un poco extenso pero espero te pueda ayudar.

Que tal, existen dos operadores que convierten las entradas a mayúsculas o minúsculas. Tienes que agregar una igualación de tu misma variables a ella misma y agregar .toLowerCase() para minúsculas o .toUpperCase() para mayúsculas por ejemplo para tu codigo quedaria asi:

diaDeLaSemana = diaDeLaSemana.toLowerCase() // para minúsculas

o

diaDeLaSemana = diaDeLaSemana.toUpperCase() // para minúsculas

Como último te menciono que la actividad no pedía hacer una comprobación, pero es bueno que tengas esa lógica para prever los errores que pueda cometer el usuario. Bien pensado!

Gracias!!