Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

[Sugerencia] Observación sobre el ejercicio

Hay dos aclaraciones importantes que se deben hacer en la consigna:

  1. La consigna menciona que "al intentar usar el descuento de 5,000 millas, no se aplica ningún descuento". Este comportamiento es consistente con la lógica del código actual. Si la cantidad de millas es igual a 5000, no se aplica ningún descuento según las reglas establecidas en el código (sino debería decir cantidadMillas >= 5000 ).

  2. La consigna menciona que "Los clientes con más de 30,000 millas están recibiendo un descuento superior al que deberían recibir". Este es un error en la explicación de la consigna. El código establece correctamente que si la cantidad de millas es mayor a 30,000, el descuento es del 20%, como se espera según la regla de negocio.

Entonces, el único ajuste necesario sería corregir la interpretación sobre la aplicación del descuento para 5000 millas, ya que el código actual refleja correctamente la lógica de no aplicar descuento para esa cantidad específica. Por lo demás, el código provisto funciona perfectamente, incluso podría implemente remover el bloque else de la estructura condicional, de esta manera, si la cantidad de millas es mayor a 5000 pero no llega a 30000, se aplicará el descuento del 10%, y si supera las 30000, se aplicará el descuento del 20%. Si no cumple ninguna de estas condiciones, el descuento es 0.

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; }

Con este ajuste, el código seguirá las reglas de negocio que se mencionan en el desafío.

6 respuestas

Es una excelente aclaración, de igual manera leí varias veces el texto para no mal interpretarlo, pero el codigo se ajusta a las reglas de la empresa. La única consigna que talvez la empresa no aclara a sus clientes es con que deben de ser más de 5000 millas. Y básicamente las opciones que da a elegir el planteamiento no son utiles.

Totalmente de acuerdo que las opciones planteadas no son útiles, en todo caso podría considerar la opción B ya que el código funciona perfectamente sin el bloque else, gracias por compartir tu opinión Juan

El código supuestamente problemático si realiza bien la tarea, quizá lo que sugieren en la opción D es que su respuesta está un tanto mas optimizada al eliminar un else que al final de cuentas puede estar de mas al ya haber declarado desde un inicio el descuento en 0. Esa es mi opinión, la verdad me gustaría saber lo que un moderador opina para aclarar por completo la duda. Saludos compañeros.

Estoy de acuerdo con mis colegas. Se me hicieron confusas las respuestas a la pregunta.

Siento que la 3era regla de negocio tiene error de redacción.

"Personas con una cantidad de millas superior a 5,000, pero inferior a 30,000 reciben un 10% de descuento."

Podría quedar :

"Personas con una cantidad de millas superior a 5,000 y hasta 30,000 reciben un 10% de descuento."

Entonces los rangos o universo de valores quedan como sigue: (....30001)=20, (30000 a 5001)=10 (5000...=0)

En el código asigna dos veces porcentajeDescuento= 0; Igual elimine el else y funciona en además VSCode da error de doble asignación.

Sobre los comentarios de los clientes: El error "supuesto" que reciben los clientes en 5,000 millas de negarles el descuento, no es un error como tal. Efectivamente no son candidatos a recibir el beneficio. Customer Service tiene que corregir su comunicados con el cliente, para que esté no se sienta engañado.

Y el de los clientes con más de 30,000 millas que están recibiendo un descuento superior al que deberían recibir, no logre reproducirle al probar el código.Buenas noches colegas, espero haber ayudado también.

Lo simulé en de esta manera asignando los valores desde el código y me muestre un mensaje solamente del descuento en la consola, y la verdad el código me funciona correctamente, el problema de que obtienen mayor descuento la que deberían no lo encontré.

Eso sí cuando la cantidad de millas son iguales debería dar los descuentos, pero no los da porque falta el "=". (De igual manera dentro de las instrucciones hay un pequeño limbo donde las cantidades exactas las evade solo dice arriba de o abajo de pero nunca que pasa si tienes exactamente la cantidad lo cual realmente debería aclararse "dentro de la empresa" )

El cambio de estructura que es la respuesta correcta me confundío porque tampoco arregla el problema del igual, aunque si aparenta estar un pco mas optimizado en cuanto es mas corto, pero ambas son correctas según mis conceptos entonces el codigo original estaba bien y la respuesta tambien.

let porcentajeDescuento = 0;
cantidadMillas = 5000;

if (cantidadMillas > 30000) {
    porcentajeDescuento = 20;
    console.log('20');
} else if (cantidadMillas > 5000) {
    porcentajeDescuento = 10;
    console.log('10');
} else {
    porcentajeDescuento = 0;
    console.log('0');
}

Gracias Andrea Berardi, tal como lo has aclarado se entiende perfectamente, quizás estas consignas son traducidas y pierden en el proceso algunas precisiones. Gracias a todos por sus aportes