![](/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.