Dispuesto a resolver un cambio porcentual simple en JavaScript? Lo primero que tienes que hacer es pensar matemáticamente. Necesita recuperar la diferencia (disminuir o aumentar) entre los números que está comparando. Esta diferencia debe dividirse entre el primer número (el que no cambia). El resultado de esta operación debe ser multiplicado por 100. Haciendo una abstracción de este proceso en una función JavaScript, tendríamos:
/** * Calculates in percent, the change between 2 numbers. * e.g from 1000 to 500 = 50% * * @param oldNumber The initial value * @param newNumber The value that changed */function getPercentageChange(oldNumber, newNumber){ var decreaseValue = oldNumber - newNumber; return (decreaseValue / oldNumber) * 100;}
Tenga en cuenta que si cambia el orden del número antiguo y el nuevo, la respuesta sería diferente, así que asegúrese de que el primer argumento es la primera versión del valor, que significa la que no cambió y como segundo argumento el valor que cambió.
Ejemplos
Los siguientes ejemplos muestran diferentes casos de cambio porcentual tanto positivo (disminución) como negativo (aumento) según el punto de vista:
Nota
Un valor negativo indica un aumento porcentual.
// X = 500// Y = 234// % = 53.2getPercentageChange(500, 234);// X = 1000// Y = 890// % = 11getPercentageChange(1000, 890);// X = 5// Y = 2// % = 60getPercentageChange(5, 2);// X = 100// Y = 120// % = -20// Note: negative as it incremented 20%getPercentageChange(100, 120);// X = 500// Y = 500// % = 0// Note: no percent changegetPercentageChange(500, 500);
Dónde se puede usar esta función
Por ejemplo, si está trabajando con algoritmos de compresión de imágenes, es posible que desee mostrar un valor legible por humanos en porcentaje que indique cuánto se comprimió de la imagen inicial, donde el número antiguo es el tamaño de archivo original, por ejemplo, 1 MB, y el nuevo número es de 500 KB, lo que resultaría en una disminución del 50%.
¡Feliz codificación !