ENUNCIADO:
Eres una persona recién llegada al equipo de desarrollo de Jornada Millas, un sitio web de compra de paquetes de viaje para los principales destinos del mundo.
Como primera tarea, tu liderazgo te ha pedido que corrijas un error que ha estado ocurriendo cuando un cliente del sitio intenta utilizar sus millas de tarjeta de crédito para obtener un descuento en los paquetes de viaje. Para esto, se te ha presentado el siguiente código:
let porcentajeDescuento = 0;
if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; } else { porcentajeDescuento = 0; }
Para ayudarte a comprender el origen del error, tu liderazgo explicó la regla de negocio utilizada para las compras de paquetes de viaje con millas:
Personas con una cantidad de millas inferior a 5,000 no reciben descuento. Personas con una cantidad de millas superior a 30,000 reciben un 20% de descuento. Personas con una cantidad de millas superior a 5,000, pero inferior a 30,000 reciben un 10% de descuento.
Sin embargo, según los informes de los clientes, al intentar usar el descuento de 5,000 millas, no se aplica ningún descuento. Los clientes con más de 30,000 millas están recibiendo un descuento superior al que deberían recibir.
EXPLICACIÓN:
La observación que tengo es que no hay respuesta correcta al "error" del código planteado, lo que sucede es que en el mismo es que el descuento de 5000 millas no se aplica porque en la condicional dice que tiene que ser mayor de 5000 en vez mayor o igual.
Otra cosa, los clientes que tienen más de 30000 no reciben descuento de más, tienen 20% como está correctamente planteado en el código.
SOLUCIÓN (si se quiere que los que tengan exactamente 5000 millas):
let porcentajeDescuento = 0;
if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas >= 5000) { porcentajeDescuento = 10; } else { porcentajeDescuento = 0; }
En este caso, los que tienen 30000 millas exactas tendrían 10% de descuento, si se quiere que tengan 20%, entonces se le agrega un "=" después de ">" para decir mayor o igual que 30000.