Ejercicios de práctica de JavaScript

Ejercicio E-3

Sistema de facturación.

  1. Crear una función que se llame facturacion().
  2. La función tiene que recibir como parámetro el monto de un producto, y el medio de pago: C (tarjeta de crédito), E (efectivo) y D (tarjeta de débito). Si el monto del producto es menor a $200 no se aplicará ningún descuento. Si el monto a abonar es entre $200 y $400 se aplicará un descuento del 30% si el medio de pago es efectivo, 20% si se realiza con débito y 10% con tarjeta de crédito. Para montos mayores a $400, el descuento es 40% sin importar el medio de pago.
  3. La función deberá retornar el monto final a abonar.

Forma de resolverlo:

Creo la funcion expresada facturacion() (usando arrow) que recibe como parámetros: precio (valido que ingrese numero, que no ingrese vací­o, que no sea 0, que no sea número negativo) y medioPago .

Si el precio está (0,200) no importa el método de pago, no hay ningún descuento (es la condición 1ra a evaluar en el if).

Si el precio está en (200,400) el método de pago si influye, en el else if lo selecciono con switch. Y finalmente si el monto es mayor a 400 tampoco importa el método de pago, siempre tiene un 40 % de descuento. Siempre muestro todo por consola

const facturacion = (precio = undefined, medioPago = undefined) => { if(precio === undefined) return console.warn("No ingresaste un numero"); if(typeof precio !== "number") return console.error(`El ${precio} ingresado no es un numero.`); if(precio === 0) return console.error("El precio ingresado no puede ser 0."); if(Math.sign(precio)=== -1) return console.error("El precio ingresado no puede ser negativo"); if(precio < 200) { return console.info(`El monto a abonar es de ${precio}.`); } else if(precio <400){ switch (medioPago) { case "C": console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de credito tenes un 10 % de descuento, tu precio final es de ${precio *0.9}.`); break; case "E": console.info(`El precio ingresado es de ${precio}, por pago en efectivo tenes un 30 % de descuento, tu precio final es de ${precio *0.7}.`); break; case "D": console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de debito tenes un 20 % de descuento, tu precio final es de ${precio *0.8}.`); break; default: console.warn("No ingresaste el medio de pago"); break; } else { return console.info(`El precio ingresado es de ${precio}, por monto mayor a $400 tienes un 40% de descuento, tu precio final es de ${precio * 0.6}.`); } }

Llamo a la función sin parámetros para ver validación

facturacion();

Llamo a la funcón con string como parámetros para ver validación

facturacion("Hola");

Llamo a la función con 0 como parámetros para ver validación

facturacion(0);

Llamo a la función con número negativo como parámetros para ver validación

facturacion(-20);

Llamo a la función y paso como parámetro un importe menor a 200

facturacion(100,"C"); facturacion(110,"E"); facturacion(120,"D");

Llamo a la función y paso como parámetro un importe entre (200,400)

facturacion(300,"C"); facturacion(300,"E"); facturacion(300,"D");

Llamo a la función y paso como parámetro mayor a $ 400

facturacion(500,"C"); facturacion(600,"E"); facturacion(700,"D");

Con F12 puedes verlo en la consola

Volver al inicio