如何使用Javascript生成多个唯一随机数?
我知道这个javascript,
Math.floor((Math.random() * 3) + 1) + ',' + Math.floor((Math.random() * 3) + 1) + ',' + Math.floor((Math.random() * 3) +1)
但它复制了这个数字。 例如,3,1,1可能是结果。 我需要生成3个唯一的随机数。请帮忙。谢谢。
答案 0 :(得分:1)
如果您不想使用任何polyfill,您可以采用旧的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)
答案 1 :(得分:0)
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
答案 2 :(得分:0)
我希望此代码可以帮助您:
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函数在数组中返回三个唯一的随机数。