Javascript 无重复数字的随机发生器

Javascript 无重复数字的随机发生器,javascript,html,arrays,Javascript,Html,Arrays,我有一个数组,需要容纳6个随机生成的数字。以下代码使用了我为实现无重复所做的工作。我原以为在副本中添加1会起作用,但最后它会再次出现 userInput = document.getElementById('txtGen').value; var numbers = new Array(6); var msg = ''; for(var i=0;i<numbers.length;i++) { numbers[i] = Math.random() * userInput;

我有一个数组,需要容纳6个随机生成的数字。以下代码使用了我为实现无重复所做的工作。我原以为在副本中添加1会起作用,但最后它会再次出现

userInput = document.getElementById('txtGen').value;
var numbers = new Array(6);
var msg = '';

for(var i=0;i<numbers.length;i++)
{
    numbers[i] = Math.random() * userInput;
    numbers[i] = Math.floor(numbers[i]);
    if(numbers[i] == numbers[i-1]){
        numbers[i] = numbers[i++];  
    }
    msg += '<input id="num' + i + '"' + 'type="text" value="' + numbers[i] + '" />';

}


document.getElementById('numbers').innerHTML = msg;
userInput=document.getElementById('txtGen').value;
变量数=新数组(6);
var msg='';
对于(var i=0;i
userInput=document.getElementById('txtGen').value;
变量编号=新数组(6),临时编号=新数组(6);
var msg='';

对于(var i=0;i尝试此解决方案

for(var i=0;i<numbers.length;i++)
{
    numbers[i] = Math.random() * userInput;
    numbers[i] = Math.floor(numbers[i]);
    for(var b=1;b<numbers.length;b++)
    {
        if(numbers[b] == numbers[b--]){
            numbers[b] = Math.random() * userInput;
            numbers[b] = Math.floor(numbers[b]);
            b=1;
        }
    }
    msg += '<input id="num' + i + '"' + 'type="text" value="' + numbers[i] + '" />';

}

for(var i=0;i您可以使用
indexOf
检查该数字是否已在数组中。如果已在数组中,则可以生成一个新数字

var userInput = document.getElementById('txtGen').value;
var numbers = new Array(6);
for (var i = 0; i < numbers.length; i++)
{
    var temp = 0;
    do
    {
        temp = Math.floor(Math.random() * userInput);
    }
    while (numbers.indexOf(temp) > -1)

    numbers[i] = temp;
}

document.getElementById("numbers").innerHTML = numbers.join(); // <- Write numbers to div.
var userInput=document.getElementById('txtGen').value;
变量数=新数组(6);
对于(变量i=0;i-1)
数字[i]=温度;
}
document.getElementById(“numbers”).innerHTML=numbers.join();//
var output=document.getElementById('numbers'),
数字=新数组(6),
味精='';
对于(变量i=0;i 0)?最大值:100;
var a=1+max*(Math.random());
返回数学。第四轮(a);
}
output.innerHTML=msg;

数字[i]=数字[i++]
除了
i
increment之外没有其他效果。嗨,我尝试了这个,但似乎没有显示任何东西!你发布了这个让我尝试并替换它吗?这个代码只是填充了数组,它没有输出任何东西。你仍然需要对数组中的值做些什么。嗨,我仍然很难实现它:\@JerodevWhat you need to the numbers?噢,对不起,我正在通过一个循环将这些数字分配给一个输入值。我这样做的原因是,除了我的分配之外,还需要我在指定的“用户输入”之间生成“lucky tattsoloto numbers”。这些数字正在放入一个div中
for(var i=0;i<numbers.length;i++)
{
    numbers[i] = Math.random() * userInput;
    numbers[i] = Math.floor(numbers[i]);
    for(var b=1;b<numbers.length;b++)
    {
        if(numbers[b] == numbers[b--]){
            numbers[b] = Math.random() * userInput;
            numbers[b] = Math.floor(numbers[b]);
            b=1;
        }
    }
    msg += '<input id="num' + i + '"' + 'type="text" value="' + numbers[i] + '" />';

}
var userInput = document.getElementById('txtGen').value;
var numbers = new Array(6);
for (var i = 0; i < numbers.length; i++)
{
    var temp = 0;
    do
    {
        temp = Math.floor(Math.random() * userInput);
    }
    while (numbers.indexOf(temp) > -1)

    numbers[i] = temp;
}

document.getElementById("numbers").innerHTML = numbers.join(); // <- Write numbers to div.