2014-09-01 183 views
0

所以,我想創建一個函數,如果一個問題被回答錯誤,它將錯誤的答案存儲到一個新的對象?所以我可以在最後列出所有錯誤的答案?使用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 */ 
} 

我沒有得到如何隨機命名變量?如果這甚至是可能的。

+0

你不需要隨機變量的命名問題比較對象,索引鍵是唯一數組中的標識符 – 2014-09-01 21:37:13

+0

opps answerSelected屬於檢查的輸入值。但現在我們只能說answerSelected = 0; – user3709564 2014-09-01 21:40:13

回答

0

難道你不能簡單地創建一個基於當前問題的新對象嗎?

像這樣的東西應該工作:

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}); 
    } 
} 
0

我想你想是這樣的:

​​

但是,我也假設你是我從問題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]; 
    } 
} 
0

listofWrongAnswer.push({question: answerlist[1].question, answer: answerlist[1].answer}); 

但有了這個代碼,你不會可以使用==符來比較的問題對象存在的那些陣列

listofWrongAnswer[1] == answerlist[1] // It's false 

但是,如果你不希望這樣的行爲,你只能存儲重ferences質疑對象的錯誤答案列表:

listofWrongAnswer.push(answerlist[1]); 

有了這個代碼,你可以用==操作

listofWrongAnswer[1] == answerlist[1] // It's true 
相關問題