Хороший способ разбить функцию на части, чтобы лучше понять, как она работает, - установить более низкий диапазон возможных значений.В приведенном ниже примере возможны значения 1-5.Если вы запустите приведенный ниже фрагмент кода, вы сможете увидеть, когда обнаружены повторяющиеся значения.
arr.indexOf(randnum) > -1
определяет, существует ли значение для randnum
в массиве.Если в массиве существует значение, функция возвращает значение, большее -1.В противном случае возвращается -1, чтобы указать, что он не существует в массиве.
Если приведенное выше значение равно true, будет выполнено continue
, которое пропускает arr[arr.length] = randnum;
, что отвечает за добавление нового номерав массив.
let arr = [];
while (arr.length < 5) {
let randnum = Math.floor(Math.random() * 5) + 1;
if (arr.indexOf(randnum) > -1) {
console.log("Duplicate detected: " + randnum);
console.log("Current array values: " + arr);
continue;
}
arr[arr.length] = randnum;
}
console.log(arr);