valmis ratkaisemaan yksinkertaisen prosentuaalisen muutoksen Javascriptissä? Ensin pitää ajatella matemaattisesti. Sinun täytyy hakea ero (vähentää tai lisätä) välillä numerot, joita vertaat. Tämä ero on jaettava ensimmäiseen numeroon (joka ei muutu). Tulos tästä operaatiosta on monitasoitettava 100: lla. Making abstraktio tämän prosessin JavaScript funktio, meillä olisi:
/** * 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;}
huomaa, että jos vaihdat vanhan ja uuden luvun järjestystä, vastaus olisi erilainen, joten varmista, että ensimmäinen argumentti on arvon ensimmäinen versio, se tarkoittaa sitä, joka ei muuttunut ja toisena argumenttina arvoa, joka muuttui.
esimerkit
seuraavissa esimerkeissä on eri tapauksia, joissa prosenttimuutos on sekä positiivinen (lasku) että negatiivinen (lisäys) näkökulman mukaan:
Huomautus
negatiivinen arvo merkitsee prosentuaalista kasvua.
// 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);
missä tätä funktiota voidaan käyttää
esimerkiksi, jos työskentelet kuvan pakkausalgoritmien kanssa, haluat ehkä näyttää ihmisen luettavan arvon prosentteina, joka osoittaa kuinka paljon on pakattu intiaalikuvasta, jossa vanha numero on alkuperäinen tiedostokoko, esim.1MB ja uusi numero on 500KB, mikä johtaisi 50%: n laskuun.
hyvää koodausta !