2014-09-01 80 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 
相关问题