我有一个数组,需要保存 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;
我也尝试过这个,但也没用!
for(var i=0;i<numbers.length;i++)
{
numbers[i] = Math.random() * userInput;
numbers[i] = Math.floor(numbers[i]);
for(var b=0;b<numbers.length;b++)
{
if(numbers[b] == numbers[b--]){
numbers[b] = numbers[b++];
}
}
msg += '<input id="num' + i + '"' + 'type="text" value="' + numbers[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.
关于javascript - 没有重复数字的随机生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26481488/