Массив обьектов
Всем доброго времени суток. Облазил англо\русско язычный интернет в поисках нормального, доходчивого объяснения тому, как правильно создавать объект в массиве, но, к сожалению, ничего толкового - не нашел :( Далее покажу свои попытки выполнить задание по написанию теста в javascript, точнее ту его часть, где нужно создать массив объектов, а именно массив с вопросами\ответами.
Попытка первая: var quiz = { question:"", answer:"" } var questionList = []; questionList[0] = new quiz(); questionList[0].question = "Чи є щось спільне між JavaScript і Java, окрім назви?"; questionList[0].answer = "ні"; questionList[1] = new quiz(); questionList[1].question = "Чи має значення реєстр літер при написанні назв змінних у JavaScript?"; questionList[1].answer = "так"; Результат - код не исполняется, + devtool в Chrome выдает: "Uncaught TypeError: object it not a function" на "questionList[0] = new quiz();". Попытка вторая: var quiz = { question:"", answer:"" } var questionList = []; quiz.question="Чи є щось спільне між JavaScript і Java, окрім назви?"; quiz.answer = "ні"; questionList.push(quiz); quiz.question="Чи має значення реєстр літер при написанні назв змінних у JavaScript?"; quiz.answer = "так"; questionList.push(quiz); Результат - код исполняется, НО все элементы массива в конце имеют значение последнего добавленного объекта. Как я понял, в массив передается не объект, а ссылка на него. Был бы очень признателен за розяснение о том, как же правильно создавать объекты в массиве. |
var arr = [{ prop: 'value' }]; var arr = []; arr.push({ prop: 'value' }); Цитата:
|
var questionList = new Array(); //Вопрос 1 questionList[0][0] = 'Чи є щось спільне між JavaScript і Java, окрім назви?'; questionList[0][1] = 'hi'; //Вопрос 2 questionList[1][0] = 'Чи має значення реєстр літер при написанні назв змінних у JavaScript?'; questionList[1][1] = 'так'; function question(a){ alert('Вопрос: '+questionList[a][0]); alert('Ответ: '+questionList[a][1]); } <input type="button" value="Вопрос 1" onclick="question(0)"> <input type="button" value="Вопрос 2" onclick="question(1)"> |
Цитата:
Спасибо за помощь, к стати :) |
Нормально, по - человечески ;) :
var massQuestions=[ { question : "Чи є щось спільне між JavaScript і Java, окрім назви?", rightAnswer : "ні" }, { question : "Чи має значення реєстр літер при написанні назв змінних у JavaScript?", rightAnswer : "так" } ]; for(var i in massQuestions ) alert("Запитання: "+massQuestions[i].question+"\nВідповідь: "+ massQuestions[i].rightAnswer); |
Часовой пояс GMT +3, время: 14:11. |