We can use the while
loop to generate a given number of random numbers and put them in an array.
For instance, we can write:
const arr = [];
while (arr.length < 8) {
const r = Math.floor(Math.random() * 100) + 1;
if (arr.indexOf(r) === -1) {
arr.push(r);
}
}
console.log(arr);
We create the arr
array which we store the randomly generated numbers in.
Then we have the while
loop that checks if arr.length
is less than a given number.
Then we generate the number with Math.random
with Math.floor
if the while
loop condition is met.
Since Math.random
only generates numbers between 0 and 1, we’ve to multiply the returned result by 100, round it down with Math.floor
and add 1 to it.
If the number isn’t already in arr
as returned by indexOf
, then we call push
to add it to arr
.
Generate Unique Random Numbers Between 1 and 100 with JavaScript with Sets
We can also use a set instead so we don’t have to check if a number is already in the set.
If it’s already in the set, then it won’t be added again.
For instance, we can write:
const nums = new Set();
while (nums.size !== 8) {
nums.add(Math.floor(Math.random() * 100) + 1);
}
console.log([...nums]);
We call add
to add items to the set.
And we spread the nums
set into an array to convert it back to an array.