2012-05-07 148 views
0

得到數組值I加的值到陣列是這樣的:無法使用for循環

ansArray = {question:id[count], answer: 'a'}; 

和控制檯顯示結果是這樣的:

(
    { 
     answer = a; 
     question=1; 
    }, 
    { 
     answer =d; 
     question=2; 
    } 
    //...... 

    //....... 
) 

我使用的for循環等這個:

for (i=0;i<20;i++){ 
    alert(ansArray[i].answer); //This comes with undefined error 
    alert(ansArray[i].question); //undefined 
} 

這提出了未定義的錯誤;

,但如果我不使用「我」變量和使用數字代替,該信息顯示正確的值:

alert(ansArray[0].answer); //shows correct value 
alert(ansArray[1].question); //shows correct value 

爲什麼不爲循環顯示錯誤?我在這裏錯過了什麼?

感謝您的幫助。

回答

0

你的第一個問題是你的ansArray變量不是一個數組,而是一個對象。您聲明它如下所示:

ansArray = {question:id[count], answer: 'a'}; 

這是創建一個帶有問題字段和答案字段的對象。你可以像這樣聲明的對象:

someObject = {}; 

你可以像這樣的聲明數組:

someArray = []; 

所以,你大概意思是這樣的:

ansArray = [{question:0, answer:'a'}]; 

這將使你一個包含單個對象的數組。我猜你想是這樣的:

var ansArray = []; 
ansArray[0] = {question:0, answer:'a'}; 
ansArray[1] = {question:1, answer:'d'}; 
... 
ansArray[19] = {question:19, answer:'b'}; 

你就可以遍歷這與原來的循環代碼。使用javascript標籤也會很有幫助。