В мире веб-разработки генерация случайных уникальных чисел — обычная задача. Независимо от того, создаете ли вы игру, создаете уникальный идентификатор или реализуете безопасную систему, крайне важно иметь надежные методы генерации случайных уникальных чисел в JavaScript. В этой статье мы рассмотрим различные подходы, используя разговорный язык, и приведем примеры кода, чтобы дать вам полное представление о различных доступных методах.
Метод 1: Math.random() с проверкой массива
Один из самых простых способов генерации случайных чисел в JavaScript — использование функции Math.random()
. Однако для обеспечения уникальности нам необходимо отслеживать сгенерированные числа. Мы можем добиться этого, используя массив для хранения сгенерированных значений и проверяя их перед принятием нового числа.
const generatedNumbers = [];
function generateUniqueRandomNumber() {
let randomNumber;
do {
randomNumber = Math.floor(Math.random() * 100) + 1;
} while (generatedNumbers.includes(randomNumber));
generatedNumbers.push(randomNumber);
return randomNumber;
}
Метод 2: использование набора.
Другой метод генерации случайных уникальных чисел — использование встроенной структуры данных Set
JavaScript. Set
хранит только уникальные значения, что делает его идеальным для наших целей.
const generatedNumbers = new Set();
function generateUniqueRandomNumber() {
let randomNumber;
do {
randomNumber = Math.floor(Math.random() * 100) + 1;
} while (generatedNumbers.has(randomNumber));
generatedNumbers.add(randomNumber);
return randomNumber;
}
Метод 3: алгоритм перемешивания Фишера-Йейтса
Алгоритм Фишера-Йейтса обычно используется для перетасовки массивов, но его также можно использовать для генерации случайных уникальных чисел. Этот алгоритм гарантирует, что каждое число в диапазоне выбирается только один раз.
function generateUniqueRandomNumber() {
const numbers = Array.from({ length: 100 }, (_, index) => index + 1);
let currentIndex = numbers.length;
while (currentIndex !== 0) {
const randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex--;
[numbers[currentIndex], numbers[randomIndex]] = [numbers[randomIndex], numbers[currentIndex]];
}
return numbers[currentIndex];
}
В этой статье мы рассмотрели три метода генерации случайных уникальных чисел в JavaScript. Используя функцию Math.random() с проверкой массива, используя структуру данных Set или реализуя алгоритм перемешивания Фишера-Йейтса, вы можете гарантировать, что генерируемые числа являются случайными и уникальными. В зависимости от вашего конкретного случая использования вы можете выбрать наиболее подходящий метод. Приятного кодирования!