我的代码需要帮助。我希望每次滚动时都会得到10个随机数,并且它不能重复,这是我的代码:
for(let j = 1; j <= 21; j++) {
const number = (Math.floor((Math.random() * j) + 1))
const genNumber = array.indexOf(number);
if (genNumber === -1) {
array.push(number);
}
}
我不知道每次我怎么能得到10个数字,无论如何它可以用js或jquery编写,但它并不适合我。希望我能在这里得到帮助。
答案 0 :(得分:0)
我真的不明白你的代码打算做什么,但是要获得10个唯一的随机数,我会使用Set和loop直到它被填充。我不知道你为什么要为10件物品循环21次......
let s = new Set();
while (s.size < 10) {
s.add((Math.floor(Math.random() * 21 /* ??? */) + 1));
}
console.log([...s]);
答案 1 :(得分:0)
你几乎就在那里,但是不使用for循环,只要数组中的内容少于10个,就使用while循环:
const array = [];
const j = 21; // Pick numbers between 1 and 21 (inclusive)
while (array.length < 10) {
const number = (Math.floor((Math.random() * j) + 1))
const genNumber = array.indexOf(number);
if (genNumber === -1) {
array.push(number);
}
}
console.log(array);