@WarriorKodeK

Как генерить числа?

Привет.
Допустим у меня есть число 40. Мне нужно каждые 2 секунды генерить рандомное число от 1 до 40, при этом надо что-бы числа не повторялись как это можна сделать?

Вот такой код генерации у меня.
const generateRandomNums = (max = 40) => {
  return Math.floor(Math.random() * (max - 1 + 1)) + 1;
};

var timerId = setInterval(() => {
  console.log(generateRandomNums());
}, 2000);


Моя мысль:
Создать массив, и перед генерацией проверять есть ли то число в нём, если да, то переходим на след. "итерацию", если нет, то пушим число в массив и показываем в консоль.
  • Вопрос задан
  • 106 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Загенерируем генератор!

function* rnd(n) {
  var nums = [], i, randomIndex, itemAtIndex;
  for( i=0; i<n; nums.push(i++));
  for( i=n-1; i>=0; i--) {
    randomIndex = Math.floor(Math.random()*(i+1)); 
    itemAtIndex = nums[randomIndex]; 
    nums[randomIndex] = nums[i]; 
    nums[i] = itemAtIndex;
  }
  i = n - 1
  while(i >= 0)
    yield nums[i--];
}


var gen = rnd(10);

while(true) {
  var v = gen.next();
  if( v.done) break;
  console.log(v.value);
}
console.log('Done!');
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
codetunnel.com/9-javascript-tips-you-may-not-know/...
PS: Вообще советую сохранить линк к себе в избранное - материал очень нужный!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
делаем массив с числами, читаем кол-во элементов массива, дергаем случайный ключ, при этом убирая это значение из массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы