info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Refactoriza el cálculo de descuentos
Mediostars100 ptsfolderRefactorización
ruleRestricciones de Refactoring
- radio_button_uncheckedSin números mágicos de descuento
- radio_button_uncheckedSin variables de una sola letra
- radio_button_uncheckedDeclara constantes en UPPER_SNAKE_CASE
- radio_button_uncheckedExtrae al menos una función auxiliar
Instrucciones y Ejemplos
Implementa la función calculateOrderDiscount que calcula el precio final de un pedido aplicando descuentos según el tipo de membresía del cliente.
Reglas de negocio:
| Membresía | Subtotal ≥ 100 | Subtotal < 100 |
|---|---|---|
"gold" | 20% descuento | 10% descuento |
"silver" | 10% descuento | 5% descuento |
| otros | sin descuento | sin descuento |
Retorna
-1si el subtotal del pedido es menor a10.
Tipos
interface OrderItem {
price: number;
quantity: number;
}
Comportamiento esperado
calculateOrderDiscount([{ price: 50, quantity: 2 }], "gold") // 80
calculateOrderDiscount([{ price: 30, quantity: 2 }], "gold") // 54
calculateOrderDiscount([{ price: 50, quantity: 2 }], "silver") // 90
calculateOrderDiscount([{ price: 20, quantity: 2 }], "silver") // 38
calculateOrderDiscount([{ price: 5, quantity: 1 }], "gold") // -1
calculateOrderDiscount([{ price: 50, quantity: 1 }], "bronze") // 50
Requisitos de calidad
Al enviar, tu código será evaluado también en estos criterios:
- Sin números mágicos — extrae los porcentajes y umbrales como constantes con nombres descriptivos
- Sin variables de una sola letra — usa nombres que expresen la intención (
items,subtotal,discount, etc.) - Constantes en UPPER_SNAKE_CASE — al menos una constante nombrada así (ej:
MIN_ORDER_AMOUNT) - Al menos una función auxiliar — extrae lógica en funciones con responsabilidad única
Restriccionesexpand_more
- •Dificultad: Medio
- •Completa todos los test cases para obtener los 100 puntos.
- •No modificar la línea
exportal final del archivo. - •Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
terminal
Puedes usar console.log() para depurar tu código. Los resultados aparecen en la Consola de salida, no en el navegador.