一行代码实现数值缩写

什么叫数值缩写

1 => 1
1000 => 1K
10000 => 10K
1000000 => 1M
1000000000 => 1G
  数值缩写是将长数值转换成短数值的表示。 之前,这里的缩写单位弄混淆了,详见下表:
Prefix Symbol(s) Power of 10 Power of 2
yocto- y 10^-24 --
zepto- z 10^-21 --
atto- a 10^-18 --
femto- f 10^-15 --
pico- p 10^-12 --
nano- n 10^-9 --
micro- m 10^-6 --
milli- m 10^-3 --
centi- c 10^-2 --
deci- d 10^-1 --
(none) -- 10^0 2^0
deka- D 10^1 --
hecto- h 10^2 --
kilo- k or K 10^3 2^10
mega- M 10^6 2^20
giga- G 10^9 2^30
tera- T 10^12 2^40
peta- P 10^15 2^50
exa- E 10^18 2^60
zetta- Z 10^21 2^70
yotta- Y 10^24 2^80

实现

var abbr = function (number) {
    var abbrList = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
    var step = 1000;
    var i = 0;
    var j = abbrList.length;

    while (number >= step && ++i < j) {
        number = number / step;
    }

    if (i === j) {
        i = j - 1;
    }

    return number + abbrList[i];
};
  通过 while 循环来相除 1000 步进值,直到相除次数到达缩写长度。

你可能感兴趣的:(一行代码)