我已经完成了一个代码,它将生成从 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它可将进行改组。
添加回答
举报
0/150
提交
取消