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

如何使用Javascript从随机生成的数字数组中省略0?

如何使用Javascript从随机生成的数字数组中省略0?

Cats萌萌 2021-10-21 17:20:42
我已经完成了一个代码,它将生成从 0 到 49 的 7 个随机数。HTML<button id="btn_generate" onClick="getMyLuckyNumbers()">GENERATE NUMBERS</button><div id="display"></div>JSfunction getMyLuckyNumbers() {for (var allNumbers=[],i=0;i<50;++i) allNumbers[i]=i;function shuffle(array) {  var tmp, current, top = array.length;  if(top) while(--top) {    current = Math.floor(Math.random() * (top + 1));    tmp = array[current];    array[current] = array[top];    array[top] = tmp;  }  return array;}allNumbers = shuffle(allNumbers);var luckyNumbers = "";var g;for (g = 0; g < 7; g++) {    luckyNumbers += allNumbers[g] + "<br>";}document.getElementById("display").innerHTML = luckyNumbers;}我想知道如何省略 0?我尝试了两种方法,但都失败了。尝试 1:将 更改i=0为i=1。for (var allNumbers=[],i=1;i<50;++i)   allNumbers[i]=i;这确实省略了 0,但是当 0 应该随机出现时,它显示为未定义。尝试 2:我试图做一个 if 语句。if(allNumbers != 0) {  allNumbers = shuffle(allNumbers);}但是如果它碰巧是随机生成的,它仍然显示为 0。那么,我如何省略 0?
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

与开始的问题i,从1是该指数将是空的,所以当访问给。0thundefined


因此,如果您想避免使用 number 0,您可以i从 1 开始,但您需要更改向数组添加数字的方式。不是通过将数字放置在特定索引处将数字添加到数组中,而是可以.push()在每次迭代时将它们添加到数组的末尾,如下所示:


//                      \/------ start at i = 1, the 1st number to be added to your array

for (var allNumbers=[],i=1;i<50;++i) 

  allNumbers.push(i);

这样,你将填补与数字您的阵列1,以49它可将进行改组。


查看完整回答
反对 回复 2021-10-21
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

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