在JS中生成非重复随机数我有以下功能function randomNum(max, used){
newNum = Math.floor(Math.random() * max + 1);
if($.inArray(newNum, used) === -1){
console.log(newNum + " is not in array");
return newNum;
}else{
return randomNum(max,used);
}}基本上我创建一个1到10之间的随机数,并检查是否已经创建了该数字,方法是将其添加到数组并检查新创建的数字。我通过将其添加到变量来调用它。UPDATED:for(var i=0;i < 10;i++){
randNum = randomNum(10, usedNums);
usedNums.push(randNum);
//do something with ranNum}这有效,但在Chrome中我收到以下错误:Uncaught RangeError: Maximum call stack size exceeded我想这是因为我在内部调用函数的次数太多了。这意味着我的代码不好。有人可以帮我逻辑吗?什么是确保我的数字不重复的最佳方法?
添加回答
举报
0/150
提交
取消