拼接数组中的对象 - 未定义的错误

Splice Object from Array - undefined error

下面的代码中包含一个非常简单的问题游戏(正在进行中)。到目前为止,我已经能够通过 onLoad 函数 "qDisplayLoad()" 显示 "Rules" 消息。接下来,只要有人点击,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;
}

错误来自这一行qArray.splice(qArray,1); 拼接方法不能将数组作为第一个参数:

array.splice(index, howmany, item1, ....., itemX)
  • 需要索引。
  • 多少可选。
  • item1, ..., itemX 可选。要添加到数组的新项目

非常感谢你,Melchia。

是的,你是对的!我能够通过更新以下内容解决此问题:

randomElement = qArray[randomNumber];
qArray.splice(randomNumber,1);

谢谢,新年快乐!