这是我的第一个问题。我需要生成一个包含 16 个随机数的数组,这就是我的解决方案:var arr = [];for (var i = 0; i < 16; i++) { arr.push(Math.floor(Math.random() * 100) + 1);}问题是这样就有可能出现重复的数字。有人可以帮助我吗?提前致谢。
2 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
最短的方法是使用 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贡献1853条经验 获得超18个赞
使用 while 循环
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)
添加回答
举报
0/150
提交
取消