我正在学习 JS,必须做一个琐事游戏,每个问题都有 4 个可能的答案。问题以字符串形式提供给我,其中“#”分隔问题,“@”分隔每个问题的 ID、文本和正确答案。对于答案,我有一个类似格式的字符串:idQuestion@idAnswer@textOfAnswer# 我知道我以一种非常不稳定的方式做到了(我正在使用 4 个数组!._.),但我想不出另一种方法它。这是我从包含答案的字符串开始的代码,并将每个答案转换为“关联数组”,该数组保存在索引答案中......称为assocAnswers
(wtf xD):
var indexAnswers = strAnswers.split("#");
var auxArray = new Array ();
var auxArray2 = new Array();
var assocAnswers = new Array ();
for (var b=0; b<indexAnswers.length; b++){
auxArray = indexAnswers[b].split("@");
auxArray2 = {
"idQuestion":auxArray[0],
"idAnswer":auxArray[1],
"txtAnswer":auxArray[2]
}
assocAnswers.push(auxArray2);
}
我想知道如何检查 idQuestion 的值(它是占用索引数组的一个元素的每个“关联数组”中的第一个键)是否等于 x 数。一旦我检查过,我必须找到与 idQuestion 匹配的剩余 3 个答案,并在 div 中显示四个答案(所以我必须显示 key 的值txtAnswer
),每个答案都在<label>
无线电输入中,但是我想我不需要 jQuery 部分的帮助。顺便说一句,我还没有学习 for...in 循环,所以如果有人将它用于可能的解决方案,任何对此的解释都将受到欢迎:P 谢谢!
编辑:一些英语 strQuestions 的例子(strAnswers 仍然是西班牙语):
var strQuestions = "1@How is a function without parameters declared?@2#"
+ "2@Which of the next invocations is right?@4#"
+ "3@Given a function: myFunction(a,b) Which is the correct invocation?@3#";
var strAnswers =
"1@1@ function:myFunction()#1@2@ function myFunction()#1@3@ declare myFunction()#1@4@ new myFunction#2@1@Resultado=myFunction#2@2@Call myFunction()#2@3@myFunction#2@4@Resultado=myFunction()#3@1@MiFuncion a,b#3@2@a=MiFuncion(b)#3@3@MiFuncion(x,y)#3@4@Ninguna de las anteriores#