las reglas de negocio excluyen el valor de 5000 millas, para valores inferiores el descuento es 0% y para superiores pero inferiores a 30000 debe ser el 10% asumiendo que con millas en 5000 se 0% de descuento, el codigo inicial cumple a la perfección, si con 5000 millas se le diera el descuento del 10% solo seria colocar >= en el else if, asi
let porcentajeDescuento = 0;
if (cantidadMillas > 30000) {
porcentajeDescuento = 20;
} else if (cantidadMillas >= 5000) {
porcentajeDescuento = 10;
} else {
porcentajeDescuento = 0;
}
la única falencia del código inicial diría que es una ineficiencia al reasignar 0 cuando ya esta inicializado en 0 desde el principio, y es lo ubico que creo mejora la opción que plantean como solución, esta:
let porcentajeDescuento = 0;
if (cantidadDeMillas > 30000) {
porcentajeDescuento = porcentajeDescuento + 20;
} else {
if (cantidadDeMillas > 5000) {
porcentajeDescuento = porcentajeDescuento + 10;
}
}