我正在尝试获取 1-80 之间的 8 个随机数并将它们放入指定的 div 中。
var numbers = []
var luckyNumber;
var x = 1;
while (x < 8) {
luckyNumber = Math.floor(Math.random() * 80 + 1);
if (numbers.indexOf(luckyNumber) == -1) {
for (var i = 1; i < 9; i++) {
document.getElementById('k' + i).innerHTML = numbers[i]
}
numbers.push(luckyNumber);
x++;
}
}
document.write(numbers);
<div id="k1">K1</div>
<div id="k2">K2</div>
<div id="k3">K3</div>
<div id="k4">K4</div>
<div id="k5">K5</div>
<div id="k6">K6</div>
<div id="k7">K7</div>
<div id="k8">K8</div>
最后 2 个数字在 HTML 结果中显示为未定义。但如果您使用 document.write 检查数字,您可以看到最后两个数字。 我该如何解决这个问题?
最佳答案
你的循环逻辑似乎不正确。您应该先填充数字数组,然后更新 html。
var numbers = []
var luckyNumber;
var x = 1;
while (x < 9) {
luckyNumber = Math.floor(Math.random() * 80 + 1);
if (numbers.indexOf(luckyNumber) == -1) {
numbers.push(luckyNumber);
x++;
}
}
for (var i = 1; i < 9; i++) {
document.getElementById('k' + i).innerHTML = numbers[i-1]
}
document.write(numbers);
<div id="k1">K1</div>
<div id="k2">K2</div>
<div id="k3">K3</div>
<div id="k4">K4</div>
<div id="k5">K5</div>
<div id="k6">K6</div>
<div id="k7">K7</div>
<div id="k8">K8</div>
关于JavaScript 随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297430/