Выражение JavaScript для генерации 5-значного числа в каждом случае - PullRequest
56 голосов
/ 01 февраля 2010

для моих тестов на селен мне нужен провайдер стоимости, чтобы получить 5-значное число в каждом случае. Проблема с javascript заключается в том, что API Math.random поддерживает генерацию только 0. начального числа с плавающей точкой. Так что это должно быть между 10000 и 99999.

Так что было бы легко, если бы он генерировал только 0.10000 и выше, но он также генерировал бы 0.01000. Так что этот подход не удастся:

Math.floor(Math.random()*100000+1)

Можно ли в каждом случае генерировать 5-значное число (в выражении!)?

Ответы [ 4 ]

132 голосов
/ 01 февраля 2010

А как же:

Math.floor(Math.random()*90000) + 10000;
46 голосов
/ 01 февраля 2010

Да, вы можете создавать случайные числа в любом заданном диапазоне:

var min = 10000;
var max = 99999;
var num = Math.floor(Math.random() * (max - min + 1)) + min;

или упрощенно:

var num = Math.floor(Math.random() * 90000) + 10000;
18 голосов
/ 01 февраля 2010

, если вы хотите сгенерировать, скажем, почтовый индекс, и не возражаете против начальных нулей, если вы можете использовать 5 цифр:

(""+Math.random()).substring(2,7)
1 голос
/ 05 августа 2016

Вы можете получить случайное целое число, включая любые заданные минимальные и максимальные числа, используя следующую функцию:

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

Дополнительные примеры и другие варианты использования см. В документации Math.random MDN .

...