chcesz rozwiązać prostą zmianę procentową w JavaScript? Najpierw musisz myśleć matematycznie. Musisz odzyskać różnicę (zmniejszyć lub zwiększyć) między liczbami, które porównujesz. Różnica ta musi być podzielona między pierwszą liczbę (tą, która się nie zmienia). Wynik tej operacji musi być mulitplied przez 100. Dokonując abstrakcji tego procesu w funkcji JavaScript, mielibyśmy:
/** * 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;}
zauważ, że jeśli zmienisz kolejność Starego i nowego numeru, odpowiedź będzie inna, więc upewnij się, że pierwszy argument jest pierwszą wersją wartości, co oznacza tę, która się nie zmieniła, a jako drugi argument wartość, która się zmieniła.
przykłady
poniższe przykłady pokazują różne przypadki zmiany procentowej zarówno dodatniej (spadek), jak i ujemnej (wzrost) w zależności od punktu widzenia:
Uwaga
wartość ujemna oznacza procentowy wzrost.
// 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);
gdzie można użyć tej funkcji
na przykład, jeśli pracujesz z algorytmami kompresji obrazu, możesz chcieć wyświetlić czytelną dla człowieka wartość w procentach, która wskazuje, ile zostało skompresowane z obrazu intial, gdzie stary numer to oryginalny Rozmiar pliku, np. 1 MB, a nowy numer to 500 KB, co spowodowałoby spadek o 50%.
Szczęśliwego kodowania !