Estoy trabajando en este proyecto donde hago una oferta de trabajo.
La clase Oferta tiene 4 parámetros (Nombre, Estado, Detalle y Precio). Sin embargo, en mi tabla tengo 5 columnas (Nombre, Estado, Detalle, Precio y Tipo). Donde debo mostrar '$$$$' para que el precio de una oferta sea mayor que el 75% de los valores mínimo y máximo de la matriz (ver más adelante), también debo agregar '$$$', '$$' y '$' (no es un problema).
Cuando agrego la primera oferta, muestra un '-' porque el mínimo y el máximo no pueden ser iguales. Hasta aquí todo bien. El problema es cuando tengo que agregar una segunda, tercera, etc. ofertas, ya que usa el último precio para calcular el porcentaje y esto hace que los tipos de ofertas antiguos calculen mal.
Código:
tipodeprecio(){ let num = 0; let Tipo = []; for(let i=0; i< this.listaOferta.length; i++){ num = this.listaOferta[i].Precio; Tipo.push(num); } let min = Math.min(...Tipo); let max = Math.max(...Tipo); let dif = max - min; let porcentaje = (num*100)/dif; if(min === max){ return "-"; } else{ if (porcentaje > 75){ return "$$$$"; } else if (porcentaje <= 75 && porcentaje > 50){ return "$$$"; } else if (porcentaje <= 50 && porcentaje > 25){ return "$$"; } else { return "$"; } } }