慕后森
2023-08-18 16:57:31
這是我的第一個(gè)問(wèn)題。我需要生成一個(gè)包含 16 個(gè)隨機(jī)數(shù)的數(shù)組,這就是我的解決方案:var arr = [];for (var i = 0; i < 16; i++) { arr.push(Math.floor(Math.random() * 100) + 1);}問(wèn)題是這樣就有可能出現(xiàn)重復(fù)的數(shù)字。有人可以幫助我嗎?提前致謝。
2 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
最短的方法是使用 aSet
并檢查它的需求size
。
let numbers = new Set,
? ? result;
? ??
while (numbers.size < 16) numbers.add(Math.floor(Math.random() * 100) + 1);
result = [...numbers];
console.log(...result);

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
使用 while 循環(huán)
const MAX_NUMBER = 16;
const arr = [];
do {
const randomNumber = Math.floor(Math.random() * 100) + 1
// Push if the array does not contain it
if (!arr.includes(randomNumber)) {
arr.push(randomNumber);
}
} while (arr.length < MAX_NUMBER);
console.log(arr)
添加回答
舉報(bào)
0/150
提交
取消