@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
делаем массив с числами, читаем кол-во элементов массива, дергаем случайный ключ, при этом убирая это значение из массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект