我必须在javascript中创建一个多选状态大写的测验。我有一个包含所有50个状态(stateArray)的数组和一个包含正确顺序的所有50个大写(capitalArray)的数组。
我有一个表格,里面有一个问题“什么是(空白)的资本”,我希望(空白)填充来自stateArray的状态。
然后我有4个单选按钮,我想要一个填充了来自capitalArray的正确答案,另一个填充了来自capitalArray的随机首都。我该怎么做?
我一直在寻找答案的互联网,但我似乎无法找到它。我知道如何编码问题/单选按钮,如果我输入我希望显示在每个旁边的文本,但我不知道如何从数组中提取它。请帮忙。
对于任何标记我的问题的人:如果你打算将其标记下来,如果你发表评论告诉我为什么这样我可以改进我未来的问题,那将是非常有帮助的。谢谢! : - )
答案 0 :(得分: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]]
这是给定状态的三个不正确的大写名称中的第一个。