【问题标题】:limit a random number generator to only output 20 of 50 numbers将随机数生成器限制为仅输出 50 个数字中的 20 个
【发布时间】:2018-10-23 02:50:00
【问题描述】:

我需要一些帮助或建议我正在尝试将随机数限制为仅生成 50 个数字中的 20 个,并且当按下/单击按钮时会激活它,有时我也会得到重复,我会停止发生

function lottoNumbers()
    {
      var lottoNums = [];
      for(var i=0; i <1 ; i++)
      {
        var temp = Math.floor(Math.random() *50);
        if(lottoNums.indexOf(temp) == -1)
        {
          lottoNums.push(temp);
          document.getElementById('circle'+i).innerHTML = lottoNums[i];
        }
        else
        {
          i--;
        }
      }
    }

【问题讨论】:

  • 那么,澄清一下,该函数是否应该输出小于 50 且没有重复的随机 20 个数字?
  • 大量的骗子......生成数字,随机排序,从数组中挑选......
  • 是的,它是黑曜石,然后我在网上搜索了逻辑并使用随机排列数组

标签: javascript arrays


【解决方案1】:

而不是使用 for 循环 - 使用 while 循环(即 - while length p>

出于演示目的-我正在动态构建一个列表,然后设置 li 的样式以提供具有边框半径的圆形;

lottoNumbers();


function lottoNumbers() {
  var lottoNums = [];
  var lottoNumStr = '';
  
  while(lottoNums.length <20) {
    var temp = Math.floor(Math.random() *50);
    if(lottoNums.indexOf(temp) == -1) {
      lottoNums.push(temp);
      lottoNumStr += '<li>' + temp + '</li>';
    }
  }
  
  document.getElementById('lottoNumList').innerHTML = lottoNumStr;
}
#lottoNumList {
  list-style: none;
}

#lottoNumList li {
 border: solid 1px #d4d4d4;
 border-radius: 50%;
 display: inline-block;
 margin: 5px;
 padding: 4px;
 width: 30px; 
 height: 30px;
 line-height: 30px;
 text-align: center;
}
<h1>Lotto Numbers</h1>
<ul id ="lottoNumList"></ul>

【讨论】:

  • 您好,感谢您的建议,虽然我尝试了但无法让它像我一样在单击按钮后工作,它一次生成我的随机数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
相关资源
最近更新 更多