如何创建一个包含非重复数字的数组?

这是我的第一个问题。


我需要生成一个包含 16 个随机数的数组,这就是我的解决方案:


var arr = [];

for (var i = 0; i < 16; i++) {

    arr.push(Math.floor(Math.random() * 100) + 1);

}

问题是这样就有可能出现重复的数字。有人可以帮助我吗?提前致谢。


慕后森
浏览 98回答 2
2回答

蝴蝶刀刀

最短的方法是使用 aSet并检查它的需求size。let numbers = new Set,    result;    while (numbers.size < 16) numbers.add(Math.floor(Math.random() * 100) + 1);result = [...numbers];console.log(...result);

慕容森

使用 while 循环const MAX_NUMBER = 16;const arr = [];do {&nbsp; const randomNumber = Math.floor(Math.random() * 100) + 1&nbsp;&nbsp;&nbsp; // Push if the array does not contain it&nbsp; if (!arr.includes(randomNumber)) {&nbsp; &nbsp; &nbsp;arr.push(randomNumber);&nbsp; }} while (arr.length < MAX_NUMBER);console.log(arr)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript