Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Получить 20 случайных чисел от 1 до 1000, но чтобы эти числа не повторялись

Как на JS сделать такую задачу. Нужно получить 20 случайных чисел от 1 до 1000 но чтобы эти случайные числа не повторялись. Как сделать такое? Все это дело должно работать в цикле. Вот пример половины кода.
var random_start = 1; // От какого генерировать var random_end = 1000; // До какого генерировать
allСycles = 20; for(countCycles=1;countCycles<=allСycles;countCycles++){ alert ("Случайное рандомное и уникально не повторающиеся число от 1 до 1000"); }
Пробовал по подсказкам так, но бывает числа повторяются
var random_end = 1000; allСycles = 20; for(countCycles=1;countCycles<=allСycles;countCycles++){
var test = Math.floor(Math.random()*(random_end+1)+1); alert(test);
}


Ответ

Использую библиотеку Lodash
console.log(_.shuffle(_.range(1,1001)).slice(0,20))
Без нее:
var random_start = 1; // От какого генерировать var random_end = 1000; // До какого генерировать allСycles = 20; var array= [] for(i=random_start;i<=random_end;i++){ array.push(i) } for(countCycles=1;countCycles<=allСycles;countCycles++){ console.log(array.splice(Math.random()*array.length,1)[0]) }

Комментариев нет:

Отправить комментарий