JavaScript 随机数生成器

标签 javascript html random

我正在尝试获取 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/

相关文章:

javascript - URL JS 对象什么时候出现在 Chrome 中?

python - 将 Django 表单字段更改为隐藏字段

c++ - C++中的顺序随机数?

javascript - 如何在单击的 li 上添加类并从 vue 2 中的 li 的任何位置删除旧类

javascript - SVG 路径动画文本在 IE11 中不呈现

javascript - 我希望表格在搜索时显示隐藏行并在删除输入时隐藏它们?

html - 使 CSS 网格单元图像项使用所有可用空间

c++ - C/C++的rand()怎么能这么快生成随机数呢?

algorithm - 在正方形中随机分布圆的算法的想法

javascript - 根据索引 Meteor 更新数组