hajlandó megoldani egy egyszerű százalékos változást a JavaScript-ben? Az első, amit meg kell tennie, hogy matematikailag gondolkodjon. Meg kell letölteni a különbség (csökkenés vagy növekedés) a számok között, hogy összehasonlítjuk. Ezt a különbséget meg kell osztani az első szám között (amely nem változik). Ennek a műveletnek az eredményét 100-mal kell elosztani. Ennek a folyamatnak az absztrakcióját egy JavaScript függvényben készítjük el:
/** * 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;}
vegye figyelembe, hogy ha megváltoztatja a régi és az új szám sorrendjét, a válasz más lesz, ezért győződjön meg róla, hogy az első argumentum az érték első változata, ami azt jelenti, hogy nem változott, második argumentumként pedig a megváltozott érték.
példák
a következő példák a százalékos változás különböző eseteit mutatják be mind pozitív (csökkenés), mind negatív (növekedés) szempontból:
Megjegyzés
a negatív érték százalékos növekedést jelez.
// 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);
hol használható ez a funkció
például, ha képtömörítési algoritmusokkal dolgozik, érdemes megjeleníteni egy ember által olvasható értéket százalékban, amely jelzi, hogy mennyit tömörítettek a belső képből, ahol a régi szám az eredeti fájlméret, például 1 MB, az új szám pedig 500 KB, ami 50% – os csökkenést eredményezne.
Boldog kódolást!