Javascript 确保只询问一次金额(js)

Javascript 确保只询问一次金额(js),javascript,html,undefined,Javascript,Html,Undefined,我有一个乘法游戏,我想要一个随机数12次,但我怎么能不让一个数字重复呢。这是我尝试过的,但我不断得到“未定义”的返回。(我正在使用Firefox 51.0.1) 当我连续调用这个函数时,它只是开始返回“Undefined”。有什么解决办法吗?Thx:)代码应该是不言自明的,主要的是你必须使用数组来跟踪使用过的数字 var数; var maxNumber=5; var usedNumbers=[]; 函数getUnusedRandomNumber(){ //继续生成一个随机数,直到找到一个尚未使

我有一个乘法游戏,我想要一个随机数12次,但我怎么能不让一个数字重复呢。这是我尝试过的,但我不断得到“未定义”的返回。(我正在使用Firefox 51.0.1)


当我连续调用这个函数时,它只是开始返回“Undefined”。有什么解决办法吗?Thx:)

代码应该是不言自明的,主要的是你必须使用数组来跟踪使用过的数字

var数;
var maxNumber=5;
var usedNumbers=[];
函数getUnusedRandomNumber(){
//继续生成一个随机数,直到找到一个尚未使用的随机数
做{
var randomNumber=getRandomNumber();
}
while(usedNumbers.indexOf(randomNumber)!=-1);
//将使用过的数字存储到数组中
UsedNumber.push(随机数);
返回随机数;
}
函数getRandomNumber(){
var randomNumber=Math.round(Math.floor((Math.random()*maxNumber)+1));
返回随机数;
}
警报(getUnusedRandomNumber());
警报(getUnusedRandomNumber());
警报(getUnusedRandomNumber());
警报(getUnusedRandomNumber());

警报(getUnusedRandomNumber())更简洁的代码是生成随机数而不重复

var nums = [], numsLen = 12, maxNum = 12, num;
while (nums.length < numsLen) {
    num = Math.round(Math.random() * maxNum);
    if (nums.indexOf(num) === -1) {
        nums.push(num);
    }
}
console.log(nums);
var nums=[],numsLen=12,maxNum=12,num;
while(nums.length
请使用数组来存储变量,不要用20行代码来编写3行代码…我建议使用数组来保存使用过的数字,并继续生成随机数,只要您发现生成的数字已经在使用过的数字数组中一个字。。。循环@扎克你试过什么?告诉我们您尝试了什么,但没有成功检查此项以了解如何使用数组,或者我已经实现了您的代码,但最终我的浏览器崩溃。不,对不起,这是我的代码。这是因为您造成了无休止的循环。请注意,我只调用了
getUnusedRandomNumber
5次,而maxNumber也是5次。当您使用所有数字时,
while
循环将无限期运行,导致浏览器冻结和崩溃。@ZakTheHat,如果它解决了您的问题,请不要忘记接受答案。
var nums = [], numsLen = 12, maxNum = 12, num;
while (nums.length < numsLen) {
    num = Math.round(Math.random() * maxNum);
    if (nums.indexOf(num) === -1) {
        nums.push(num);
    }
}
console.log(nums);