Я хочу сгенерировать случайное целое число. Чтобы проверить, что он еще не сгенерирован, я хочу добавить его в массив, и в следующий раз при генерации нового целого числа я хочу проверить, существует ли оно в массиве, если он существует, затем сгенерировать снова (пока он не сгенерирует некоторые целое число, которое не существует), а затем вернуть целое число.
Я пытаюсь использовать следующую функцию рекурсии, но рекурсия работает неправильно (когда она генерирует существующее число, тогда есть проблема).
var ids = [];
function generateID() {
var newID = Math.floor(Math.random() * 6) + 1; //small range for test
if( jQuery.inArray(newID, ids) == -1 ) {
ids.push(newID);
return newID; //is it correct to return from here?
} else {
//problem part
console.log(newID + " exists");
generateID();
}
}
function getID() {
var i = generateID();
console.log(i);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="getID();" >Generate ID</button>