如何在ES6中生成不重复数字的数组?

Leo*_*ete 2 javascript

我正在尝试在ES6中生成随机数数组-不应重复数字。

当前,我的函数生成一个随机数数组,但它们在重复:

winArray = [...Array(6)].map(() => Math.floor(Math.random() * 53));
Run Code Online (Sandbox Code Playgroud)

这是我发现的非ES6解决方案: 非ES6解决方案

使用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)

Nin*_*olz 6

您可以取一个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)