【发布时间】:2017-08-14 14:31:22
【问题描述】:
我正在使用预先编写的问答问答游戏代码,我必须将游戏问题选择从数值更新为字符串。但我不完全知道要对用户选择的代码进行哪些更改以与正确答案进行比较。目前,对于数字答案,代码将选择数组中正确选项的数组位置与正确答案变量进行比较。我最好的猜测是更改必须发生在底部显示的 displayScore 函数中。
当前问题对象:
{
question: "What is 2*5?",
choices: [2, 5, 10, 15, 20],
correctAnswer: 2
}
更新后的问题对象将是:
{
question: "Which list contains words that are NOT names of shoe types:"
choices:[ "A. Oxford, jelly, boat, clogs, stiletto, mary jane",
"B. Loafer, gladiator, wedge, mule, platform",
"C. Pump, moccasin, wingtip, sneaker, derby, monk",
"D. Chalupa, dogler, hamster, croonley, frankfurt"],
correctAnswer : "D. Chalupa, dogler, hamster, croonley, frankfurt"
}
目前计算正确答案的部分代码是:
//Array containing user choices
var selections = [];
// Reads the user selection and pushes the value to an array
function choose() {
selections[questionCounter] = +$('input[name="answer"]:checked').val();
}
// Computes score and returns a paragraph element to be displayed
function displayScore() {
var score = $('<p>',{id: 'question'});
var numCorrect = 0;
for (var i = 0; i < selections.length; i++) {
if (selections[i] === questions[i].correctAnswer) {
numCorrect++;
}
}
}
【问题讨论】:
-
correctAnswer指的是choices中的密钥。坦率地说,我认为处理正确答案的原始方式更加通用。 -
选择一个对象数组。然后你可以拆分键/描述,例如。
[{ 'A', 'Oxford, jelly, boat, clogs, stiletto, mary jane' },{ 'B', ... }]。然后你可以简单地对照正确的键检查答案 -
您为什么不简单地将
correctAnswer保留为索引(在您的示例中:3)?它适用于字符串数组以及数字数组。 -
只需删除 + ...
标签: javascript jquery arrays compare