javascript-使用带有数组的循环命名变量

我在使循环工作时遇到了一些麻烦.我正在使用循环将数组值匹配到变量测试的变体.但是,我不确定如何正确执行此操作.我正在对《星球大战》进行测验,并尝试通过循环(注释掉)完善原始代码.对于这个业余编码员,任何帮助将不胜感激!

for (i=0; i<2;i++;){
    test=document.myForm.elements[i].value;
    if (test[i] ==answers[i]){
        ++corr;
    }
    else ++incorr;
}
    /*test0=document.myForm.elements[0].value;
    if (test0.toLowerCase()=="chewbacca"){
        ++corr;
    }
    else ++incorr;
    test1=document.myForm.elements[1].value;
    if (test1.toLowerCase()=="princess leia"){
        ++corr;
    } else ++incorr;
    test2=document.myForm.elements[2].value;
    if (test2.toLowerCase()=="han solo"){
        ++corr;
    }
    else ++incorr;
    test3=document.myForm.elements[3].value;
    if (test3.toLowerCase()=="rey"){
        ++corr;
    }
    else ++incorr; */
    location.reload();
    alert("You got " + corr/(incorr+corr)*100 + " percent correct!");
}

解决方法:

在for循环内提取的值不是数组,而是一个简单的值,因此请不要像数组test [i]那样尝试访问它.

在比较变量以进行严格比较时,也请使用===,否则您将得到不想要的结果.

for (var i=0; i<2; i++;) {
  test=document.myForm.elements[i].value;
  if (test === answers[i]) {
    ++corr;
  }
  else ++incorr;
}

注意:为了获得更好的性能,请在strict模式下运行脚本,请使用strict ;;这将强制您在使用所有变量之前声明所有变量.参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode

上一篇:Python:在while循环中返回多个值的优雅方法


下一篇:数字矩阵JavaScript