Как на 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])
}
Комментариев нет:
Отправить комментарий