如何使用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個唯一的隨機數。請幫忙。謝謝。
如何使用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個唯一的隨機數。請幫忙。謝謝。
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);
**不是在IE支邊14日之前,但有一個填充工具
如果你不希望使用任何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)
我希望這個代碼可以幫助你:
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函數返回數組中的三個唯一隨機數。
您必須檢查生成的編號是否以前生成過。提示:這意味着知道以前生成的隨機數存儲在某處。 – Adam
如果不允許重複,那麼得到的集合並不是真正的隨機數;;) –
公平點。但這是我需要的第一步。 3個獨特的數字來顯示.. – chero