进行宾果游戏。就获得不重复的随机数并显示它们而言,一切都可以正常工作。我还准备将设置添加回下一轮的原始阵列。我需要帮助的最后一件事是在不刷新整个页面的情况下重置游戏,以使先前调用的数字消失,而仅显示下一轮调用的数字。
基本上,我在调用并显示数字之前和之后都尝试了Set.clear()方法,但是它除了显示新数字之外,还显示了先前调用的数字。然后,我尝试将其添加到随机数生成器函数,以查看是否可以在再次运行该函数之前清除该集合,但结果仍然相同。在迭代集合中的所有值之后,我也尝试过使用Set.delete(),但这也显示了每一轮的结果。
let numbers = new Set()
.add("B1")
.add("B2")
.add("B3")
.add("B4")
.add("B5")
.add("B6")
.add("B7")
.add("B8")
.add("B9")
.add("B10");
let called = Array.from(numbers);
let display = new Set();
function getRandomNum() {
function rando() {
for (let i = 0; i < called.length; i++) {
const j = Math.floor(Math.random() * called.length);
const number = called[i];
called[i] = called[j];
called[j] = number;
if (number) {
called.splice(j, 1);
}
if (called.length < 0) {
return;
} else {
return number;
}
}
}
if (called.length === 0) {
index = "No More Numbers";
} else {
index = rando();
display.add(index);
}
document.getElementById('bingo').innerHTML = index;
}
function show() {
function showMe() {
for (let n of display) {
document.getElementById('reveal').innerHTML += "<br/>" + n + "<br/>";
called.push(n);
}
}
showMe();
display.clear();
}
<div id="bingo">
</div>
<div id="button">
<button onclick="getRandomNum()">Random Number</button>
</div>
<br/>
<br/>
<br/>
<div id="reveal">
<button onclick="show()">Numbers Called</button>
</div>
我要做的就是在给BINGO打电话并显示被叫号码之后,将被叫号码“擦干净”,这样一来,就可以执行另一轮Bingo,而不必刷新整个网络。页面。