jQuery: перемешивать объекты внутри объекта - PullRequest
1 голос
/ 15 марта 2012

Я взял в качестве примера следующий объект:

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 и т.д.), но перемешать значения.

Таким образом, первым свойством «questions» все равно будет «1», но объект, содержащий «question», «a», «b», «c», «answer», будет перемешан.

Надеюсь, в этом есть смысл, просто спроси, не ясно ли мне.Заранее спасибо, ребята!

Ответы [ 2 ]

3 голосов
/ 15 марта 2012

Во-первых, я не вижу смысла вообще иметь свойства "1", "2", "3", ваш массив просто должен быть массивом объектов вопроса. Первый индекс (0) равен «1», второй индекс «2». Это может быть выведено из позиции.

var question = [{question 1 data}, {question 2 data}];

После того как вы это сделали и упростили, вы можете использовать функцию перемешивания, подобную описанной здесь .

0 голосов
/ 15 марта 2012

Вот лучшая структура данных:

var questions = [
    { "question": "What animal goes 'woof'", "answers": ["Dog","Cat","Duck"] },
]

т.е. первый ответ всегда верен.

В своем коде вы можете скопировать первый ответ в переменную (так что вы знаете,правильный ответ), а затем просто перетасуйте массив answers.

...