Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图产生&;显示宾果游戏的非重复随机值_Javascript_Arrays_Random_Shuffle_Non Repetitive - Fatal编程技术网

Javascript 试图产生&;显示宾果游戏的非重复随机值

Javascript 试图产生&;显示宾果游戏的非重复随机值,javascript,arrays,random,shuffle,non-repetitive,Javascript,Arrays,Random,Shuffle,Non Repetitive,我正在做宾果游戏。我已经能够在点击一个按钮时生成并显示一个随机数。我唯一的问题是一些值最终会被多次生成。这就是我发布这个问题的原因。在游戏重置之前,每个值只能生成和显示一次。有没有人有任何示例代码,最好是关于如何使用我经常听到的splice()方法 我已经可以从集合中生成随机数并显示它。我只是想确保生成的数字不会重复 答对 了 设数字=新集合() .加入(“B1”) .添加(“B2”) .添加(“B3”) .添加(“B4”) .添加(“B5”) .添加(“B6”) .添加(“B7”) .添

我正在做宾果游戏。我已经能够在点击一个按钮时生成并显示一个随机数。我唯一的问题是一些值最终会被多次生成。这就是我发布这个问题的原因。在游戏重置之前,每个值只能生成和显示一次。有没有人有任何示例代码,最好是关于如何使用我经常听到的splice()方法

我已经可以从集合中生成随机数并显示它。我只是想确保生成的数字不会重复


答对 了
设数字=新集合()
.加入(“B1”)
.添加(“B2”)
.添加(“B3”)
.添加(“B4”)
.添加(“B5”)
.添加(“B6”)
.添加(“B7”)
.添加(“B8”)
.添加(“B9”)
.添加(“B10”);
let called=Array.from(数字);
let display=新数组();
函数getRandomNum()
{
函数rando()
{
for(设i=called.length-1;i>0;i++)
{
const j=Math.floor(Math.random()*称为.length);
常数编号=被叫[i];
被叫[i]=被叫[j];
被叫[j]=数;
返回号码;
//let show=called[Math.floor(Math.random()*called.length)];
//回归演出;
}
//document.getElementById('bingo').innerHTML=display[0];
}
设index=rando();
document.getElementById('bingo').innerHTML=index;
显示、推送(索引);
}
函数show()
{
for(设n=0;n”+显示[n]+“
”; } } 随机数


电话号码

如果希望获得一些帮助以防止重复生成的数字(首选示例代码)

您可以创建一个数组,在其中存储所有已选择的数字。然后,当随机选择一个新数字时,继续随机化,直到选择了一个不在已选择数字数组中的数字

下面是一个代码示例,说明了这个想法,选择0到9之间的数字,不允许重复数字。这个过程被分解如下

var alreadyPicked = [];
var max = 10;

function random() {
  let unique = false;

  while (!unique && alreadyPicked.length < max) {
    let randNumber = Math.floor(Math.random() * max);

    if (alreadyPicked.includes(randNumber) == false) {
      unique = true;
      alreadyPicked.push(randNumber);
    }

  }
}
var alreadyPicked=[];
var max=10;
函数随机(){
让唯一=错误;
而(!unique&&alreadyPicked.length
  • 声明了一个数组,
    alreadyPicked
    。它用于跟踪哪些数字已经被选中,这样它们就不会被选中两次

  • 已声明编号
    max
    。当没有更多的随机数可供选择时,它用于防止无限循环

  • while
    循环中选择随机数,循环直到
    unique
    布尔值设置为
    true
    或直到
    alreadyPicked
    数组的长度达到
    max
    长度,当没有更多的唯一数字可供选择时,就会发生这种情况

  • 获得一个数字后,语句
    alreadyPicked.includes(randNumber)
    检查
    randNumber
    是否在那些已经选择并存储在
    alreadyPicked
    中的数字中

  • 如果为false,则表示选择了唯一的编号
    unique
    然后设置为true以中断循环,并将数字推送到
    alreadyPicked
    ,这样就不会再次选择该数字

  • 
    答对 了
    让数字=[“B1”、“B2”、“B3”、“B4”、“B5”、“B6”、“B7”、“B8”、“B9”、“B10”]
    让显示=[];
    函数getRandomNum(){
    函数rando(){
    对于(变量i=0;i”+显示[n]+“
    ”; } } 跑
    var alreadyPicked = [];
    var max = 10;
    
    function random() {
      let unique = false;
    
      while (!unique && alreadyPicked.length < max) {
        let randNumber = Math.floor(Math.random() * max);
    
        if (alreadyPicked.includes(randNumber) == false) {
          unique = true;
          alreadyPicked.push(randNumber);
        }
    
      }
    }