Javascript 二维数组,如果。。Else语句执行不正确。 var correct=0; var=0; 变量问题=[ [“一年有几个月?”,12], [“我最喜欢的度假地点是什么?”,“哥斯达黎加”], [“我多大了?”,23] ]; 对于(var i=0;i

Javascript 二维数组,如果。。Else语句执行不正确。 var correct=0; var=0; 变量问题=[ [“一年有几个月?”,12], [“我最喜欢的度假地点是什么?”,“哥斯达黎加”], [“我多大了?”,23] ]; 对于(var i=0;i,javascript,Javascript,这是我用JavaScript做的一个实践测试。当我测试代码时,我意识到即使我给出了错误的答案,代码仍然是正确的。我试图从数组中删除正确答案,但我认为这不是问题所在。 var错误=0; 变量问题=[ [“一年有多少个月?”,12,空], [“我最喜欢的度假地点是什么?”,“哥斯达黎加”,空], [“我多大了?”,23,空] ]; 对于(var i=0;i

这是我用JavaScript做的一个实践测试。当我测试代码时,我意识到即使我给出了错误的答案,代码仍然是正确的。我试图从数组中删除正确答案,但我认为这不是问题所在。

var错误=0;
变量问题=[
[“一年有多少个月?”,12,空],
[“我最喜欢的度假地点是什么?”,“哥斯达黎加”,空],
[“我多大了?”,23,空]
];
对于(var i=0;iconsole.log(“错误:”,错误)替代实现:

(函数(){
让错误=0;
常量问题=[
[“一年有几个月?”,12],
[“我最喜欢的度假地点是什么?”,“哥斯达黎加”],
[“我多大了?”,23]
];
问题。forEach((问题,idx,arr)=>{
问题.推送(窗口.提示(问题[0]);
错误+=(问题[1]!=问题[2])?1:0;
});
window.alert(`error:${error}`);

})();好的,您没有检查用户输入-您检查的是数组中每个项的
1
索引,这就是答案。所以你总是得到100%-你需要找到一种存储用户响应的方法。在这里使用具有属性的对象可能比使用2D数组更好-参见此重构:-没有将其作为答案发布,因为我基本上重写了所有内容。@tymeJV在作业中,我需要使用2D数组,不幸的是,这就是问题所在
var correct = 0;
var wrong = 0;
var questions = [
    ["How many months are there in a year?", 12 ],
    ["What is my favorite vacation spot?", "Costa Rica"],
    ["How old am I?", 23]
];

for(var i = 0; i < questions.length; i ++ ) {
  prompt(questions[i][0]);
}  
if (questions[0][1] === 12 ) {
  print("Correct!");
  correct += 1;
  } else {
    wrong += 1;
  }

if(questions[1][1] === "Costa Rica") {
  print("Correct!");
  correct += 1;
  } else {
    wrong += 1;
  }

if(questions[2][1] === 23) {
  print("Correct!");
  correct += 1;
  } else {
    wrong += 1;
  }



print(wrong);