2015-12-30 55 views
3

我有一些麻煩的循環工作循環的變量。我正在使用循環來將數組值與變量test的變體相匹配。但是,我不知道如何正確地去做這件事。我正在做一個關於星球大戰的測驗,並試圖通過一個循環來改進原始代碼(註釋掉)。任何幫助將非常讚賞這個業餘編碼器!命名使用與陣列

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!"); 
} 

回答

3

for循環內提取的值不是陣列,而是簡單的值,所以不要試圖訪問它像一個陣列test[i]

比較變量進行嚴格比較否則你會得到不想要的結果時也使用===

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

注:爲了獲得更好的性能在嚴格模式下,use strict;運行腳本,這將強制您在使用之前聲明所有變量。裁判:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode