我以下面的对象为例:
var questions = {
"1": {
"question": "What animal goes 'woof'",
"a": "Duck",
"b": "Cat",
"c": "Dog",
"answer": "Dog"
},
"2": {
"question": "What color is a giraffe",
"a": "Yellow",
"b": "Orane",
"c": "Blue",
"answer": "Yellow"
},
"3": {
"question": "What is 2 + 2",
"a": "6",
"b": "4",
"c": "9",
"answer": "4"
},
"4": {
"question": "What is 4 + 8",
"a": "12",
"b": "17",
"c": "100",
"answer": "12"
},
"5": {
"question": "What is 4 - 1",
"a": "5",
"b": "91",
"c": "3",
"answer": "3"
}
};
我想以特定的方式改变这些问题。
我想维护属性名称和顺序(1,2,3 .etc。),但是将值清空。
所以'问题'的第一个属性仍然是“1”,但包含“问题”,“a”,“b”,“c”,“答案”的对象将被改组。
希望这有意义,只要问我是否一直不清楚。先谢谢你们!
答案 0 :(得分:3)
首先,我没有看到“1”,“2”,“3”属性的重点,你的数组只需要是一个问题对象的数组。第一个索引(0)处的那个是“1”,第二个索引是“2”。这可以通过位置来推断。
var question = [{question 1 data}, {question 2 data}];
一旦完成并简化了它,就可以使用像here所述的shuffle函数。
答案 1 :(得分:0)
这是一个更好的数据结构:
var questions = [
{ "question": "What animal goes 'woof'", "answers": ["Dog","Cat","Duck"] },
]
即。第一个答案总是正确的。
在您的代码中,您可以将第一个答案复制到一个变量中(这样您就知道了正确的答案)然后只需将answers
数组洗牌。