jQuery:在对象中随机播放对象

时间:2012-03-15 13:55:25

标签: javascript jquery object shuffle

我以下面的对象为例:

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”,“答案”的对象将被改组。

希望这有意义,只要问我是否一直不清楚。先谢谢你们!

2 个答案:

答案 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数组洗牌。