![](/img/trans.png)
[英]Create new array of array with objects that have objects inside, javascript
[英]Create new objects inside of a function with JavaScript?
因此,我想創建一個函數,如果一個問題的回答錯誤,它將錯誤的答案存儲到一個新對象中? 這樣我可以在最后列出所有錯誤答案?
var answerList = [{question:1, answer:1},{question:2, answer:2},]
var listofWrongAnswers = [];
if (answerSelected != answerlist[1].answer) {
/* create a new object
put answerlist[1].question and answerlist[i].answer in new object and push to
array ListofWrongAnswers */
}
我不知道如何隨機命名變量? 如果可能的話。
您不能根據當前問題簡單地創建一個新對象嗎?
這樣的事情應該起作用:
if (answerSelected != answerlist[1].answer) {
listofWrongAnswers.push({question: answerlist[1].question, answer: answerlist[1].answer});
}
但是,您應該使該索引成為參數:
function addToWrongAnswers(answerSelected, idx) {
if (answerSelected != answerlist[idx].answer) {
listofWrongAnswers.push({question: answerlist[idx].question, answer: answerlist[idx].answer});
}
}
我假設您想要這樣的東西:
function getQuestion(number){
for(var i = 0; i < answerList.length; i++){
if(answerList[i].question === number){
return answerList[i];
}
}
}
function checkAnswer(questionNumber, answer){
var question = getQuestion(questionNumber);
if(answer !== question.answer){
listofWrongAnswers[question];
}
}
但是 ,我還假設您將從問題1開始並增加數字,因此,如果您僅使用數組索引而不是遍歷該問題來選擇問題,它將更加簡單。 所以這可能更好:
var answerList = [{question:1, answer:1}, {question:2, answer:2}];
var listofWrongAnswers = [];
function checkAnswer(questionNumber, answer){
var question = answerList[questionNumber - 1];
if(answer !== question.answer){
listofWrongAnswers[question];
}
}
如果要克隆該問題對象並將其推入該數組,則可以使用
listofWrongAnswer.push({question: answerlist[1].question, answer: answerlist[1].answer});
但是使用此代碼,您將無法使用==
運算符比較那些數組中存在的問題對象
listofWrongAnswer[1] == answerlist[1] // It's false
但是,如果您不希望出現這種情況,則只能在錯誤的答案列表中存儲對問題對象的引用:
listofWrongAnswer.push(answerlist[1]);
使用此代碼,您可以使用==
運算符比較問題對象
listofWrongAnswer[1] == answerlist[1] // It's true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.