比较嵌套对象值

时间:2017-05-15 20:36:43

标签: javascript

我有一个像这样的对象:

answers = {
   "q1" :  {
        "selected": "a",
        "correct": "b"
        },
   "q2": {
        "selected": "c",
        "correct": "d"
       },
    etc...
}

如何比较选中和正确?

我正在尝试

for (let key in answers) {
    if (key.selected === key.correct) {
        correct++;
    } else {
        incorrect++;
    }
}

但它不起作用。我一直把所有问题都标记为正确。我确定我需要做一些其他事情来降低对象的水平,但不知道该怎么做。

如果我answers[key].selected === answers[key].correct全部错误

3 个答案:

答案 0 :(得分:1)

嗯......您正在比较键而不是值,其中selectedcorrect对于这两种情况都是undefined因此是正确的。你可能意味着:

if (answers[key].selected === answers[key].correct) {

答案 1 :(得分:0)

你想:

for (let key in answers) {
  if (answers[key]["selected"] === answers[key]["correct"]) {
    correct++; 
  } else {
    incorrect++; 
  }
}

答案 2 :(得分:0)

你需要像这样使用它



answers = {
   "q1" :  {
        "selected": "a",
        "correct": "b"
        },
   "q2": {
        "selected": "c",
        "correct": "c"
       }

};
var correct=0;incorrect=0;
for (let key in answers) {
 
 if (answers[key].selected === answers[key].correct)
 {
   correct++;
 }
else
{
   incorrect++;
}
}
   console.log(correct);
   console.log(incorrect);