首页 > 解决方案 > 使用 JavaScript 挑选不重复的随机数

问题描述

我如何在没有重复号码的情况下选择 5 个随机彩票号码?下面的代码是我到目前为止所拥有的,我只是不知道在哪里插入代码以循环选择重复的数字并重新分配新的数字?我尝试将 if 和 else 与 forEach 函数一起添加,但没有奏效。这是我到目前为止的代码。先感谢您。

let lotto = [];
    for(let i = 0; i < 5; i++){
      lotto[i] = Math.floor(Math.random() * 69) + 1;
    }

const sorting = lotto.sort((a,b) => a - b);
    console.log(sorting);

标签: javascriptrandomduplicatesnumbers

解决方案


两种解决方案:

  1. 创建一个数字列表,然后从中选择(并删除)5 个。
  2. 创建一个循环,不断生成数字,直到它有 5 个唯一的数字。

您的尝试可以适用于解决方案 2:

let lotto = [];
while(lotto.length < 5) {
    console.log('Got', lotto.length, 'numbers!');
    // Changed 69 to 5 to "force" clashes (well, make it very likely)
    const num = Math.floor(Math.random() * 5) + 1;
    if (!lotto.includes(num)) lotto.push(num);
}

const sorting = lotto.sort((a, b) => a - b);
console.log(sorting);


推荐阅读