У меня есть следующая функция
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
Я думаю, это потому, что я вызываю функцию внутри себя слишком много раз. Это означает, что мой код не подходит.
Может ли кто-нибудь помочь мне с логикой? что лучший способ убедиться, что мои номера не повторяются?