2013-10-30 31 views
0

我有一個隨機測驗,爲了檢查答案,我使用了一個變量。但是,它只是跳到最後並將變量聲明爲「11」。如何在不聲明其他變量更改的情況下更改javascript數組中的變量?

aVocab[intCat]= new Array(); 
aVocab[intCat][0]="FIRST" 
aVocab[intCat][1] = new Array() 
aVocab[intCat][1][intIncr++]="a"; var celebrity = 1 
aVocab[intCat][1][intIncr++]="b"; var celebrity = 2 
aVocab[intCat][1][intIncr++]="c"; var celebrity = 3 
aVocab[intCat][1][intIncr++]="d"; var celebrity = 4 
aVocab[intCat][1][intIncr++]="e"; var celebrity = 5 
aVocab[intCat][1][intIncr++]="f"; var celebrity = 6 
aVocab[intCat][1][intIncr++]="g"; var celebrity = 7 
aVocab[intCat][1][intIncr++]="h"; var celebrity = 8 
aVocab[intCat][1][intIncr++]="i"; var celebrity = 9 
aVocab[intCat][1][intIncr++]="j"; var celebrity = 10 
aVocab[intCat][1][intIncr++]="k"; var celebrity = 11 

報警代碼,檢查是:

function display_alert() 
    { 
if (celebrity===1) 
    { 
    alert("1") 
    } 
else if (celebrity===2) 
    { 
    alert("2") 
    } 
else if (celebrity===3) 
    { 
    alert("3") 
    } 
else if (celebrity===4) 
    { 
    alert("4") 
    } 
else if (celebrity===5) 
    { 
    alert("5") 
    } 
else if (celebrity===6) 
    { 
    alert("6") 
    } 
else if (celebrity===7) 
    { 
    alert("7") 
    } 
else if (celebrity===8) 
    { 
    alert("8") 
    } 
else if (celebrity===9) 
    { 
    alert("9") 
    } 
else if (celebrity===10) 
    { 
    alert("10") 
    } 
else if (celebrity===11) 
    { 
    alert("11") 
    } 
else 
    { 
    alert("This is for debugging") 
    } 
    } 

我想這是因爲多重變量的聲明,但我不知道如何逃避它們。爲了消除混淆,我正在爲一個學校項目進行名人測驗,並希望用它自己的價值定義每個數組。

+0

嘗試在每個'var celebrity = n'語句周圍放一個if語句,否則所有這些語句都會運行,只有最後一個會產生影響。名人變量目前不是數組的一部分,你只需重新聲明它11次。 –

+0

提示:使用switch語句 –

+4

你想用'celebrity'實現什麼?正如你所擁有的一樣,你重複地定義它,使它的值爲11,所以你的功能正在做的是人們所期望的。應該發生什麼? – 2013-10-30 01:04:39

回答

0

沒有答案,只是一個評論。在你的代碼有:

aVocab[intCat]= new Array(); 
aVocab[intCat][0]="FIRST" 
aVocab[intCat][1] = new Array() 
aVocab[intCat][1][intIncr++]="a"; var celebrity = 1 
aVocab[intCat][1][intIncr++]="b"; var celebrity = 2 
... 
aVocab[intCat][1][intIncr++]="k"; var celebrity = 11 

它聲明名人多次,每次都分配一個新的值。多重聲明不是有害的,只是多餘的。在代碼結尾處,名人將具有最後指定的值,即11

我想這是因爲多重變量的聲明,但我不知道如何逃脫他們

不是多個聲明,但多項任務。

你還沒有解釋什麼aVocab是,或intCat,也沒有你表示intIncr如何被初始化。無論如何,也許bfavaretto的評論是關於金錢,你想要一些對象的數組。

+0

測驗應該隨機確定你收到什麼問題並顯示它,但是我希望提示框顯示答案,所以我指定了變量11次,每個問題一次。至於你的問題,aVocab,intCat和intIncr都只是隨機化數組結果的腳本的一部分,但工作正常。 – Vendily

相關問題