我在使循环工作时遇到了一些麻烦.我正在使用循环将数组值匹配到变量测试的变体.但是,我不确定如何正确执行此操作.我正在对《星球大战》进行测验,并尝试通过循环(注释掉)完善原始代码.对于这个业余编码员,任何帮助将不胜感激!
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
标签:loops,arrays,javascript 来源: https://codeday.me/bug/20191119/2034606.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。