首页 > 解决方案 > 尝试使用 eventListener 生成数字

问题描述

我想生成随机彩票号码,范围为 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;
});

随机未定义

标签: javascript

解决方案


你很接近,但是你应该研究范围。尝试以下操作:

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 循环内的东西都不能随机读取。因此函数和返回:)


推荐阅读