簡體   English   中英

如何使用 Javascript 生成多個唯一的隨機數?

[英]How to generate more than one unique random number, using Javascript?

如何使用 Javascript 生成多個唯一的隨機數?

我知道這個 javascript,

Math.floor((Math.random() * 3) + 1) + ',' + Math.floor((Math.random() * 3) + 1) + ',' + Math.floor((Math.random() * 3) +1)

但它復制了這個數字。 例如,3,1,1 可能是結果。 我需要生成 3 個唯一的隨機數。 請幫忙。 謝謝你。

如果您不想使用任何 polyfills,您可以采用舊的 indexOf 樣式

function getNumber(){
   return Math.floor((Math.random() * 3) + 1)
}

var numbers = [];
do {
  var rnd = getNumber();
  if (numbers.indexOf(rnd) == -1){
    numbers.push(rnd);
  }
}
while (numbers.length < 3)

Array.prototype.includes()

var temp = 0,
    results = [];

do {
   // generate random number
    temp = Math.floor((Math.random() * 3) + 1);

    // see if number has already been generated
    if (!results.includes(temp)) {
        // it has not, so add it
        results.push(temp);
    }
} while (results.length < 3);

** Edge 14 之前的 IE 不支持,但有一個 polyfill

我希望這段代碼可以幫助您:

function GRN()
{
    var availableNumbers = [1,2,3];
    var result = [];
        for (var i = 0;i < 3;i++)
        {
            var ix = Math.round(Math.random() * (availableNumbers.length - 1));
            result.push(availableNumbers[ix]);
            availableNumbers.splice(ix,1);
        }
    return result;
}

GRN 函數返回數組中的三個唯一隨機數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM