DevGang
Авторизоваться

Генерация случайных чисел с ванильным JS 

Сегодня мы рассмотрим, как создавать случайные числа с ванильным JavaScript.

Метод Math.random()

Метод Math.random() генерирует случайный float (число со знаком после запятой) между 0 и 1.

// Регистрируется что-то вроде этого: 0.37111265461165543
// каждый раз будет иначе
var rand = Math.random();
console.log(rand);

Число, которое генерирует метод Math.random(), включает 0 (может быть 0, иногда, хотя я никогда лично не видел, чтобы это произошло), но исключает 1.

Получение чисел больше чем 0

Чтобы сделать это, мы можем умножить любое возвращаемое значение Math.random() на число, которое является степенью десяти. Чем больше число, на которое вы умножаетесь, тем больше цифр в номере.

var randomOverZero = function (pow) {
  return Math.random() * pow;
};

var rand100 = randomOverZero(100);
console.log(rand100);

var rand10000 = randomOverZero(10000);
console.log(rand10000);

Получение случайного целого числа

Что если вы хотите получить случайное целое число вместо числа с плавающей точкой?

Для этого мы можем использовать метод Math.floor() после умножения возвращенного значения Math.random() на нашу степень десяти.

var randomInteger = function (pow) {
  return Math.floor(Math.random() * pow);
};

var rand100 = randomInteger(100);
console.log(rand100);

var rand10000 = randomInteger(10000);
console.log(rand10000);

Получение случайное число в заданном диапазоне

Наконец, давайте посмотрим, как получить случайное целое число в заданном диапазоне. Например, предположим, что вы хотели число, которое было бы не менее 5, но не больше 42.

Для этого мы создадим вспомогательную функцию, которая принимает min и max числа в качестве аргументов.

Затем мы вычтем min из max и добавим 1 к max (иначе оно никогда не будет достигнуто). Мы умножим возвращаемое значение Math.random() на этот новый номер и добавим к нему min. Это дает нам случайное плавающее между нашими двумя значениями.

Наконец, мы используем, Math.floor() чтобы превратить его в целое число и вернуть результат.

var randomNumber = function (min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min);
};

var rand = randomNumber(5, 42);
console.log(rand);
#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу