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

我已经完成了一个代码,它将生成从 0 到 49 的 7 个随机数。


HTML


<button id="btn_generate" onClick="getMyLuckyNumbers()">GENERATE NUMBERS</button>

<div id="display"></div>

JS


function 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?


Cats萌萌
浏览 180回答 1
1回答

冉冉说

与开始的问题i,从1是该指数将是空的,所以当访问给。0thundefined因此,如果您想避免使用 number 0,您可以i从 1 开始,但您需要更改向数组添加数字的方式。不是通过将数字放置在特定索引处将数字添加到数组中,而是可以.push()在每次迭代时将它们添加到数组的末尾,如下所示://&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/------ start at i = 1, the 1st number to be added to your arrayfor (var allNumbers=[],i=1;i<50;++i)&nbsp;&nbsp; allNumbers.push(i);这样,你将填补与数字您的阵列1,以49它可将进行改组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript