Как создать уникальное значение каждый раз, когда я запускаю код java-скрипта? - PullRequest
0 голосов
/ 20 мая 2018

Я использую Math.random для создания уникального значения.Однако, похоже, что через несколько дней, если я запускаю тот же сценарий, он выдает то же значение, которое было создано ранее.

Есть ли способ создать уникальное значение каждый раз, когда я запускаю сценарий.Ниже мой код для случайного метода.

var RandomNo = function (Min,Max){
    return Math.floor(Math.random() * (Max - Min + 1)) + Min;
}

module.exports = RandomNo;

1 Ответ

0 голосов
/ 20 мая 2018

Лучший способ получить уникальное значение - использовать Date () в виде миллисекунд.Это увеличивающееся представление времени никогда не повторится.

Сделайте так:

var RamdomNo = new Date().getTime();

Готово.

Редактировать

Если вы связаны с ограничениями по длине, приведенное выше решение не поможет вам, так как повторяемость предсказуема с использованием возрастающего числа, которое становится короче.

Тогда я бы предложил следующий подход:

// turn Integer into String. String length = 36
function dec2string (dec) {
  return ('0' + dec.toString(36)).substr(-2);
}

// generate a 20 * 2 characters long random string
function generateId () {
  var arr = new Uint8Array(20);
  window.crypto.getRandomValues(arr);

  // return 5 characters of this string starting from position 8.
  // here one can increase the quality of randomness by varying
  // the position (currently static 8) by another random number <= 35
  return Array.from(arr, this.dec2string).join('').substr(8,5);
}

// Test
console.log(generateId());

Эта пара методов генерирует случайную строку длиной 40 символов, состоящую из букв и цифр.Затем вы выбираете последовательность из 5 последовательных символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...