我正在尝试在ES6中生成随机数数组-不应重复数字。
当前,我的函数生成一个随机数数组,但它们在重复:
winArray = [...Array(6)].map(() => Math.floor(Math.random() * 53));
Run Code Online (Sandbox Code Playgroud)
使用Set的此解决方案未在for循环中运行:
for (let i = 1; i <= draws; i += 1) {
// Generating a random array of 6 number
const winArray = new Set();
while (winArray.size < 6) winArray.add(Math.floor(Math.random() * 53));
}
Run Code Online (Sandbox Code Playgroud)
您可以取一个Set并填充该组,直到所需的大小。
var numbers = new Set;
while (numbers.size < 6) numbers.add(Math.floor(Math.random() * 53));
console.log(...numbers);Run Code Online (Sandbox Code Playgroud)
为了获得更多的数字集合,您可以为每个平局设置一个空集合。
var numbers,
draws = 5,
i;
for (i = 0; i < draws; i++) {
numbers = new Set;
while (numbers.size < 6) numbers.add(Math.floor(Math.random() * 53));
console.log(...numbers);
}Run Code Online (Sandbox Code Playgroud)