我需要生成4位数为1到10亿的9位数的唯一随机数。用零填充直到9位数字。生成很多随机数
我的脚本适用于等式(但速度很慢)。 400000个数字。但不是4百万
我需要在一个文本文件中的数字。它的罚款只是CTRL + S的输出。
有没有什么方法可以优化内存/性能?
function zeroPad(num, places) {
var zero = places - num.toString().length + 1;
return Array(+(zero > 0 && zero)).join("0") + num;
}
var arr = []
while (arr.length < 4000000) {
var randomnumber = Math.ceil(Math.random() * 100000000)
if (arr.indexOf(randomnumber) > -1) continue;
arr[arr.length] = randomnumber;
}
for (i = 0; i < arr.length; i++) {
document.write(zeroPad(arr[i], 9) + '<br />');
}
出于好奇,为什么会有人需要4个亿的数字? – Slime
我认为这是不正确的缩进 – TankorSmash
每次你使用'document.write'浏览器都会执行DOM解析和其他昂贵的操作。将所有内容组合并将其添加到DOM一次会更好。尽管有400万个数字,但你的字符串会变得太大。尝试将其分配到1000个数字。 虽然我不认为浏览器可以处理4M。 – sniels