【发布时间】:2018-04-22 14:02:01
【问题描述】:
我正在尝试创建一种宾果号码生成器,我在其中生成一个唯一的号码并单独显示它。
我还希望该数字 + 我生成的所有下一个数字显示在一行的底部。
我的问题是,每当遇到重复项时,它都会循环,直到找到唯一的数字,但显示该数字的次数与它在底行中循环的次数一样多。因此,如果我生成数字 [4, 6, 2] 然后生成另一个 4,它将继续循环,直到找到另一个不在数组中的数字。
如果它命中数组中的数字 2 次然后找到一个 5,它将显示为 [4, 6, 2, 5, 5, 5,]。有什么办法不让它显示前 2 个 5 吗?
window.onload = startup;
function startup() {
document.getElementById("button").onclick = newNumber1;
}
var number = 0;
var bingoNumber = [];
var i;
function newNumber1() {
number = Math.floor((Math.random() * 9) + 1);
clickME();
}
function clickME() {
for (i = 0; i < bingoNumber.length; i++) {
if (number === bingoNumber[i]) {
newNumber1();
}
}
bingoNumber.splice(0, 0, number);
document.getElementById("display").innerHTML = bingoNumber[0];
document.getElementById("row").innerHTML = bingoNumber;
}
<button type="button" id="button">Click</button>
<div id="display"></div>
<div id="row"></div>
【问题讨论】:
-
Java 不是 JavaScript - 只使用那些与您的问题真正相关的标签。
-
if (bingoNumber.indexOf(number)===-1) { not in array ... }或if (bingoNumber.indexOf(number)!=-1) { in array ... }developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
用所有可能的数字填充数组。创建空数组,例如
bingoNumber,选择一个有效的索引。将元素从大数组移动到bingoNumber,在大索引处拼接元素并重复
标签: javascript arrays random numbers