-1

我必须在 javascript 中创建一个多项选择州首府测验。我有一个包含所有 50 个州的数组(stateArray)和一个包含所有 50 个大写字母的数组(capitalArray),并且顺序正确。
我有一张表,上面有一个问题“(空白)的首都是什么”,我希望(空白)填充来自 stateArray 的状态。
然后我有 4 个单选按钮,我希望其中一个填充来自 capitalArray 的正确答案,另外 3 个填充来自 capitalArray 的随机大写字母。我该怎么做呢?

我一直在互联网上寻找答案,但似乎找不到。如果我要输入我想在每个按钮旁边显示的文本,我知道如何编写问题/单选按钮,但我不知道如何让它从数组中提取。请帮忙。

编辑:好的,也许我问错了。我不希望有人为我做作业。任务还有很多,我只是不知道如何做这一部分——特别是从数组中提取数据来填充问题和单选按钮。我无法在我的教科书或互联网上找到相关信息。在这一点上,我只是感到沮丧和困惑,我不知道该去哪里寻求帮助。如果有人知道我可以在哪里找到有关如何执行此操作的教程或信息,那也会有所帮助。



对于标记我的问题的人:如果您要标记它,如果您留下评论告诉我为什么这样我可以改进我未来的问题,这将非常有帮助。谢谢!:-)

4

1 回答 1

1

我不知道如何让它从阵列中拉出

对于表中的每一行,从任何数组(例如状态)中选择一个随机索引:

var questionIndex = Math.round(Math.random(stateArray.length));

然后使用获得的问题索引从两个数组中获取值,前提是两者的顺序正确:

var question = stateArray[questionIndex],
    answer = capitalArray[questionIndex];

您现在可以填充行的 HTML 字段。

编辑:

要获得单选按钮的“不正确”答案,您可以简单地:

var incorrectAnswerIndices = [],
    incorrectAnswerIndex;

while (incorrectAnswerIndices.length < 3) {
    incorrectAnswerIndex = Math.round(Math.random(stateArray.length));
    // Check for collisions with the correct answer,
    // and make sure there are no identical answers:
    if (incorrectAnswerIndex !== questionIndex &&
            incorrectAnswerIndices.indexOf(incorrectAnswerIndex) === -1) {
        incorrectAnswerIndices.push(incorrectAnswerIndex);
    }
}

您现在可以迭代incorrectAnswerIndices数组并使用值创建/填充错误问题单选按钮的值,例如:capitalArray[incorrectAnswerIndices[0]]这是给定状态的三个不正确大写名称中的第一个。

于 2013-03-09T21:19:03.377 回答