为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2023-08-18 16:57:31
这是我的第一个问题。我需要生成一个包含 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);



查看完整回答
反对 回复 2023-08-18
?
慕容森

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)


查看完整回答
反对 回复 2023-08-18
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信