如何使用Javascript生成多个唯一的随机数?

如何使用Javascript生成多个唯一的随机数?,javascript,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, 结果=[]; 做{ //生成随机数 temp=M

如何使用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, 结果=[]; 做{ //生成随机数 temp=Math.floorMath.random*3+1; //查看是否已生成该编号 if!results.includestemp{ //它没有,所以添加它 结果:1.pushtemp; } }而结果表明:长度<3;
**在Edge 14之前的IE中不受支持,但有一个polyfill

如果您不想使用任何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)

我希望此代码可以帮助您:

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函数在一个数组中返回三个唯一的随机数。

您必须检查生成的数字是否是以前生成的。提示:这意味着将先前生成的随机数的知识存储在某个地方。如果不允许复制,则生成的集合不是真正的随机;说得对。但这是我需要的第一步。要显示的3个唯一数字..此函数的javascript是什么?您的意思是什么?这是一个简单的老Javascript,它甚至不使用ES5中的任何东西。