2012-11-23 4 views
-1

는 I 문제가JavaScript 객체를 반복하는 방법은 무엇입니까?

enter image description here ... 그것은 또한 (소스)에 일부 jQuery 코드를 인쇄 또는 콘솔 기능을 도시

이다

화면에 나타낸다

jQuery('#checkbox-counter').live('click', function(){ 
    jQuery.get('index.php?option=get_site_list=true', 
     function(data){ 
      console.log(data[1]); 
      for(var index in data[1].id){ 
       console.log(data[1].id[index]); 
       console.log(data[1].name[index]); 
      } 
     }, 
     'JSON' 
    ) 
}); 

간단한 JS 루프를 가지고 문제? 당신을 통해 루핑

+0

실제로 무엇을하려고합니까? –

+0

@RichardJPLeGuen은 루프를 통해 객체에서 값을 가져옵니다. – Kin

+0

코드가하는 일입니다. 일부 값은 정의되지 않았거나 함수 객체이거나 다른 객체입니다. 이것이 왜 당신에게 문제가되는지 설명해 주시겠습니까? 당신의 질문을 읽는 것이 명백하지 않습니다. –

답변

1

data[1].iddata[1].name 속성은 배열, 그래서 당신은 기존의 for 루프보다는 for..in 사용한다 : 그것은 당신에게 단지 숫자 인덱스 된 것 이외의 다른 속성을 제공합니다 당신이 for..in를 사용하는 경우

 for(var index = 0; index < data[1].id.length; index++){ 
      console.log(data[1].id[index]); 
      console.log(data[1].name[index]); 
     } 

을 .

+0

1 문제 - 배열이 exampl 0 인 경우, 2,3,4 (1은 없습니다) - 루프가 작동하지 않습니다 ... – Kin

+0

'if (data [1] .id [index]! = undefined) ...'를 테스트 할 수 있지만 JavaScript 배열에 "누락 된"요소가 포함될 수 있습니다. JSON에서 데이터를 가져오고 JSON은 희소 배열을 지원하지 않으므로이 경우 문제가 발생하지는 않습니다. (질문에 표시된 바와 같이 대괄호 배열 구문을 사용하지 마십시오. 객체를 사용하여 희소 배열을 시뮬레이트 할 수 있지만, JSON 문자열이 대괄호와 함께 적절한 배열을 사용하는 프로세스가 생성 될 때 바보가 될 수 있습니다. 다른 때는 중괄호로 배열을 가장합니다.) – nnnnnn

관련 문제