尝试使用eventListener生成数字

时间:2019-06-27 13:20:23

标签: javascript

我想生成1到59之间的随机彩票号码,其中显示7个号码。它们必须通过单击提交按钮来生成。我努力使它写入控制台日志,指出未定义随机数。

let lottoNum = [];
while (lottoNum.length < 7) {
  let random = Math.floor(Math.random() * 59) + 1;
  if (lottoNum.indexOf(random) === -1) lottoNum.push(random);
}

let btn = document.getElementById("Button");
button.addEventListener("click", function getNumbers() {
  return random;
});
  

随机性未定义

1 个答案:

答案 0 :(得分:0)

您很亲密,但是您应该研究范围。请尝试以下操作:

generateNumbers = () => {
  let lottoNum = [];
  while (lottoNum.length < 7) {
    let random = Math.floor(Math.random() * 59) + 1;
    if (lottoNum.indexOf(random) === -1) lottoNum.push(random);
  }
  return lottoNum;
}

let btn = document.getElementById("Button");
btn.addEventListener("click", function getNumbers() {
  const nums =  generateNumbers();
  console.log(nums);
});

我已经将您的主代码放入一个函数中,并从所述函数中返回了它。从那里,我已经在您的点击监听器中调用了该函数并记录了它们。您可以在console.log做任何您想做的事情。

之所以拥有“未定义的随机数”,是因为您在let random循环中进行了while。这意味着,不在while循环的{}内的任何内容都不能随机读取。因此函数并返回:)