我遇到了一个问题,当我的答题器游戏中的自动答题器足够快地达到20万时,它开始滞后,然后无法正常运行或运行得很快。
有没有办法使10万变成10万,从10万变成10万,而又不重复呢?
我用原始代码尝试了一下,发现每个函数最多添加1000个后缀会有点困难:
if (number >= 100000) {
document.getElementById(ID).innerHTML = "100K"
}
if (number >= 101000) {
document.getElementById(ID).innerHTML = "101K"
}
等等。 我不要多个if语句!
这可以工作,但是会占用太多空间,我知道有一种更简单的方法,但是我找不到它。谁能提供做到这一点的方法?
答案 0 :(得分:4)
尝试将将数字格式化为其他功能的工作分开。
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"
。