2014-12-12 6 views
0

개체로 변환 한 JSON을 다운로드했습니다. 이제는 두 번째 및 세 번째 수준을 검색하고 변수에서 검색 할 속성을 지정할 수 있어야합니다.변수를 사용하여 검색 할 개체의 속성을 선택하는 방법은 무엇입니까?

여기 내 코드 시도입니다.

for (var j = 0; j < currentSnapshot.products.length; j++) { 
     currentSnapshot.products[j].[firstLayer]; // Is this line kosher? 
     if (secondLayer) { 
      for (var i = 0; i < secondLayer.length; i++) { 
       secondLayer[i]; // Do something. 
      }; 
     }; 
    }; 

가장 적합한 방법은 무엇입니까? 도움 주셔서 감사합니다.

. in .hasownproperty는 내가 찾고있는 것입니다. 어떻게하면 두 번째 레이어에 대한이 작업을 깊게 만들 수 있습니까? 속성의 속성?

+1

JSON의 모습은 무엇입니까? 객체 속성에 대한 반복은 대개 for..in을 사용하여 수행되지만 ES5 구현을 사용하면 * obj의 자체 열거 가능 속성에 대해 'Object.keys (obj) .forEach (function (key) {obj [key]});' *. – RobG

+0

감사합니다. 예, 들어 있습니다. 내가 찾고있는 것이 있습니다. 두 번째 레이어 (객체 내의 객체 속성) 만 검색하면됩니다. – wibberding

답변

1

은 내가 귀하의 요구 사항을 이해 모르겠지만, 답변을 시도 할 수 있습니다 : 이미 firstLayer 가정입니다

for (var j = 0; j < currentSnapshot.products.length; j++) { 
    var secondLayer = currentSnapshot.products[j][firstLayer]; 
    if(secondLayer){ 
     for(var i = 0; i < secondLayer.length; i++) { 
      secondLayer[i]; // Do something. 
     }; 
    }; 
}; 

액세스하려는 속성입니다 문자열을 의미한다. 또한 currentSnapshot.products이 개체 배열이고 secondLayer도 배열 인 것으로 가정합니다.

또한 대괄호 사이의 기간을 .products[j].[firstLayer]으로 제거했는데 구문 오류입니다.

+0

괄호 사이에 점을 달고있었습니다 "제품 [j] [firstlayer]"그게 전부입니다. 감사! – wibberding

관련 문제