在下面的代码中包含一个非常简单的问题游戏(正在进行中)。到目前为止,我已经能够制定一个"规则"消息通过onLoad函数显示," qDisplayLoad()"。接下来,onClick函数" qDisplayClick"任何时候有人点击,因此随机拉出阵列(qArray)。
我的问题: 如何显示从阵列中选择的问题后如何删除(拼接)?我的目标是不要重复两次相同的问题。在下面的代码中,你会发现我的业余尝试" splice" (它有点工作),但相反,数组推出" undefined"。
var qLoad = 0;
var qArray = [
"Question 1",
"Question 2",
"Question 3",
"Question 4",
"Question 5"
];
var randomElement;
/* The text "Rules" appears when the page loads */
function qDisplayLoad() {
if (qLoad == 0) {
randomElement = "Rules";
qLoad = 1; /* Changes qLoad to "1" from "0" so the array begins within the "qDisplayClick" function */
}
document.getElementById("questions").innerHTML = randomElement;
}
/* A new question is pulled from the array everytime the mouse is clicked (up to a maximum of 5) */
function qDisplayClick() {
var randomNumber = Math.floor(Math.random() * qArray.length); /* Questions are randomly chosen and rounded down from the array */
if (qLoad += 1 && !(qLoad == 7)) {
qArray.splice(qArray,1);
randomElement = qArray[randomNumber];
} else if (qLoad == 0) {
randomElement = "Rules";
}
if (qLoad == 7) { /* After the 5th question, text will appear for the pop up */
randomElement = "WIP - POP UP PLACEHOLDER";
}
document.getElementById("questions").innerHTML = randomElement;
}

答案 0 :(得分:5)
错误来自此行qArray.splice(qArray,1);
拼接方法不能将数组作为第一个参数:
array.splice(index, howmany, item1, ....., itemX)
答案 1 :(得分:1)
非常感谢Melchia。
是的,你是对的!我可以通过更新以下内容来解决此问题:
randomElement = qArray[randomNumber];
qArray.splice(randomNumber,1);

谢谢,新年快乐!