Ejercicio 16:
Programa una función que devuelva el monto final después de aplicar un descuento a una cantidad dada, por ejemplo miFuncion(1000, 20) devolverá 800
La forma en que lo hice:
Creo la función expresada aplicarDescuento
Mi primer parámetro es una cantidad, la nombro con la variable monto y la inicializo como undefined.
Mi segundo parámetro es el descuento, lo nombro con la variable descuento y lo inicializo en 0, asi no se aplica descuento y me da el mismo monto.
Realizo las validaciones: que monto sea un número , que le número no sea negativo ni sea 0. También valido para la variable descuento: que ingrese un número y que dicho número no sea negativo (no puedo aplicar descuentos negativos).
En el último return calculo el descuento.
const aplicarDescuento = (monto = undefined , descuento = 0) => {
f(monto === undefined) return console.warn("No ingresaste el monto");
if(typeof monto !== "number") return console.error(`El valor ${monto} ingresado no es un número`);
if(monto === 0 ) return console.error("El monto no puede ser 0");
if(Math.sign(monto) === -1) return console.error("El monto ingresado no puede ser negativo");
if(typeof descuento !== "number") return console.error(`El valor ${descuento} ingresado no es un número`);
if(Math.sign(descuento) === -1) return console.error("El descuento ingresado no puede ser negativo");
return console.info(`$ ${monto} - $ ${descuento} % = ${monto - ((monto*descuento)/100)}`)
}
Llamo a la función sin parámeros para aplicar las validaciones
aplicarDescuento();
Llamo a la función con el primer parámetro como String para aplicar las validaciones
aplicarDescuento("200");
Llamo a la función con el primer parámetro como Number pero 0 para aplicar las validaciones
aplicarDescuento(0);
Llamo a la función con el primer parámetro como Number pero en número negativo para aplicar las validaciones
aplicarDescuento(-1000);
Llamo a la función con el primer parámetro como Number, pero el segundo parámetro como String para aplicar las validaciones
aplicarDescuento(1000,"200");
Llamo a la función con el primer parámetro como Number, pero el segundo parámetro como Number en número negativo para aplicar las validaciones
aplicarDescuento(1000,-200);
Llamo a la función con el primer parámetro como Number, pero el segundo parámetro como Number 0 para aplicar las validaciones
aplicarDescuento(1000,0);
Llamo a la función con dos parámetros
aplicarDescuento(1000,25);
Con F12 pueden inspeccionar 🧐 por consola el código en acción.