En este caso yo evitaría usar el switch ya que este tendría que realizar muchos pasos para llegar a la condicional que queremos. Yo usaría un objeto de la siguiente manera:
const discounts = {
platzivacation: 10,
mothersday: 15,
independenceday: 20,
christmas: 50,
};
Luego pasaría el input de descuento a texto. Validaría de la siguiente manera el descuento que se quiere aplicar:
function percentage(price) {
let total;
const discountOnNumber = discounts[discount.value];
if (!discountOnNumber) return "Discount cannot be found";
total = Number((price * (100 - discountOnNumber)) / 100);
return `$${total}`;
}
Podría validarse el tipo de dato de las variables para asegurar que son textos o números en caso de que se quiera aplicar un descuento en número directamente en vez de un cupón.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?