2012-05-07 5 views
0

위해 사용 배열 값을 취득 할 수 없습니다I 이런 배열에 값을 추가 루프

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

콘솔 이런 결과 표시

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

    //....... 
) 

I처럼 루프에 대한 사용을 이 :

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 = {}; 

그리고 당신은 다음과 같이 배열을 선언 할 수 있습니다 : 당신은 다음과 같이 객체를 선언 할 수

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

이 줄 것이다 :

someArray = []; 

그래서, 당신은 아마 이런 식으로 뭔가를 의미 당신은 하나의 객체를 담고있는 배열입니다. 나는 다음과 같은 것을 원한다고 생각합니다 :

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

원래 루프 코드로이 루프를 반복 할 수 있습니다. 자바 스크립트 태그를 사용하는 것도 도움이 될 것입니다.