ochotni vyřešit jednoduchou procentuální změnu v JavaScriptu? První, co musíte udělat, je myslet matematicky. Musíte načíst rozdíl (snížení nebo zvýšení) mezi čísly, která porovnáváte. Tento rozdíl je třeba rozdělit mezi první číslo (To, které se nemění). Výsledek této operace musí být mnohotvárný o 100. Provedení abstrakce tohoto procesu ve funkci JavaScript bychom měli:
/** * 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;}
Všimněte si, že pokud změníte pořadí Starého a nového čísla, odpověď by byla jiná, takže se ujistěte, že první argument je první verze hodnoty, to znamená ta, která se nezměnila, a jako druhý argument hodnota, která se změnila.
příklady
následující příklady ukazují různé případy procentuální změny jak pozitivní (snížení), tak negativní (zvýšení) podle pohledu:
Poznámka
záporná hodnota označuje procentní nárůst.
// 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);
kde lze tuto funkci použít
pokud například pracujete s algoritmy komprese obrazu, možná budete chtít zobrazit hodnotu čitelnou pro člověka v procentech, která udává, kolik bylo komprimováno z intial image, kde oldNumber je původní velikost souboru např. 1MB a newNumber je 500KB, což by mělo za následek pokles o 50%.
šťastné kódování !