首页 > 解决方案 > 如何创建“100K”等数字后缀而不必重复?

问题描述

我一直有一个问题,当我的答题器游戏中的自动答题器运行速度足够快以达到 200000 时,它开始滞后,然后它不能正常运行,或者不能正常运行。
有没有办法让10万变成10万,10.1万变成101K而不重复呢?

我用我的原始代码尝试了这个,并意识到在每个函数中添加多达 1000 个后缀有点太难了:

if (number >= 100000) {
    document.getElementById(ID).innerHTML = "100K"
} 
if (number >= 101000) {
    document.getElementById(ID).innerHTML = "101K"
} 

不断地。我不想要多个 if 语句!

这会起作用,但它会占用太多空间,我知道有一种更简单的方法,但我就是找不到。谁能提供一种方法来做到这一点?

标签: javascript

解决方案


尝试将格式化您的号码的工作分成不同的功能。

SUFFIXES = 'KMBTqQsSOND' // or whatever you'd like them to be
function getSuffixedNumber(num) {
    var power = Math.floor(Math.log10(num));
    var index = Math.floor(power / 3);
    num = Math.round(num / Math.pow(10, (index * 3))); // first 3 digits of the number
    return num + (SUFFIXES[index - 1] || ''); // default to no suffix if we get an out of bounds index
}

您可以像这样调用函数:var x = getSuffixedNumber(101000),的值x将是"101K"


推荐阅读