Массив обьектов
Всем доброго времени суток. Облазил англо\русско язычный интернет в поисках нормального, доходчивого объяснения тому, как правильно создавать объект в массиве, но, к сожалению, ничего толкового - не нашел :( Далее покажу свои попытки выполнить задание по написанию теста в 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, время: 20:08. |