2013-07-20 4 views
1

내가 그 객체 샘플 pages 있습니다액세스,

{ 
"page_1": 
    { 
    "stats": 
     { 
     "stat_1": 20, 
     "stat_2": 40 
     } 
    "ahkam": 
     { 
     //Staff 
     } 
    } 
"page_2": 
    { 
     //staff 
    } 
} 

어떻게 내가 stat_2의 값에 액세스 할 수 있습니다를? 나는 그 표현을 사용하지만 난 그것이 작동하지 않는 이유를 모르겠어요 따라서

enter image description here

: 이것은 데이터의 시각화가

Object.keys(pages["page_1"].stats)["stat_1"] 
+0

"그 표현"에 반대 할당이 무엇입니까? 무슨 표현? – Quentin

+0

죄송합니다, 그것을 수정했습니다 –

+0

개체를 포함하는 개체의 이름을 뭐죠? – steo

답변

2

로 , 거기에 도착하려면 다음을 사용하십시오.

var stat = pages.page_1.stats.stat_2; 
,

"page_1는"동적 인 경우에, 당신은 bracket notation (또한 첨자 표기법으로 알려진)를 사용할 수 있습니다 : "stat_2는"동적 인 경우

var key = 'page_' + x; 
var stat = pages[key].stats.stat_2; 

, 다시, 같은 표기법을 사용할 수 있습니다 :

var pageKey = 'page_' + x; 
var statKey = 'stat_' + n; 
var stat = pages[pageKey].stats[statKey]; 

또는 전체 표현이 표기법을 사용할 수

var stat = pages[pageKey]['stats'][statKey]; 

기본적으로 a.b.ca['b']['c']과 같습니다.이 경우 'b''c'은 문자열 리터럴이지만 모든 표현식이 될 수 있습니다.

+0

page_1은 변수이며, 객체를 구문 분석하는 키이며, 문자열 형식입니다. –

+0

@HoussemBdr, 괜찮습니다. 그러면 첨자 표기법을 사용하십시오. 예가 업데이트되었습니다. – rid

+0

FYI, 대괄호 표기법 *이라고합니다. http://www.ecma-international.org/ecma-262/5.1/#sec-11.2.1 –

0

obj = { 
     field1: { 
       stat1: "string"; 
     } 
} 


obj.field1.stat1 
0

는 충분하지 var Page = {....}

Page.page_1.stats.stat_1