【问题标题】:Generating four numbers with no duplicates [duplicate]生成四个没有重复的数字[重复]
【发布时间】:2017-05-12 23:26:09
【问题描述】:

我正在尝试为我为学校制作的基于文本的生存游戏生成四个不同的数字。我只是在这部分遇到了麻烦,我查看了其他类似的问题,但他们想要四个数字、数字邮政编码和一堆其他花哨的东西。我只需要四个不同的数字。我当时在做Math.random

>***'int event_W =(int)( Math.random()*10 + 1);

 int event_X =(int)( Math.random()*10 + 1);

 int event_Y =(int)( Math.random()*10 + 1);

 int event_Z =(int)( Math.random()*10 + 1);***

并且数字不能大于 10 或小于 0

【问题讨论】:

标签: javascript random


【解决方案1】:

您可以使用 Math.random 生成数字并继续检查新生成的数字是否已经在您的数组中。

var arr = []
while(arr.length < 4){
   var randomnumber = Math.random()
   if(arr.indexOf(randomnumber) > -1) continue;
   arr[arr.length] = randomnumber;
}
console.log(arr)

【讨论】:

    【解决方案2】:

    此函数将返回一个最小值和最大值之间的随机整数数组。

    function getRandomInt(min, max) {
      min = Math.ceil(min);
      max = Math.floor(max);
      return Math.floor(Math.random() * (max - min)) + min;
    }
    
    function fetchRandomArray(min, max, num){
      var random = [];
      while(random.length < num){
        var randomNum = getRandomInt(min, max);
        if(random.indexOf(randomNum) < 0){
          random.push(randomNum);
        }
      }
      return random;
    }
    
    console.log(fetchRandomArray(1, 10, 4));

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 2016-03-01
      • 1970-01-01
      相关资源
      最近更新 更多