在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);
}}基本上我創(chuàng)建一個1到10之間的隨機數,并檢查是否已經創(chuàng)建了該數字,方法是將其添加到數組并檢查新創(chuàng)建的數字。我通過將其添加到變量來調用它。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我想這是因為我在內部調用函數的次數太多了。這意味著我的代碼不好。有人可以幫我邏輯嗎?什么是確保我的數字不重復的最佳方法?
在JS中生成非重復隨機數
慕勒3428872
2019-08-28 09:55:14