2014-01-08 6 views
0
var stats = JSON.parse(xmlhttp.responseText); 
for (index = 0; index <= top; ++index) { 
    console.log(stats[index]); 
} 

반환 개체 :JavaScript 개체의 속성을 읽으려면 어떻게해야합니까?

Object {nick: "Okorok", uniq: "STEAM_0:0:XX", teamkill: 4, damage: 619592, deaths: 1727…} 

이 어떻게 속성을 읽습니까?

"console.log(stats[index]['nick']);"을 시도하면 오류 : "Cannot read property 'nick' of undefined "가 있습니다.

+0

'stats'와 같은 것은 배열입니다. 아마도 그들 모두가 '닉 (nick)'이라는 분야를 가지고 있지 않을까요? 또는 배열 크기가 잘못되었을 수도 있습니다. 'index <= top' 대신에'index

+0

[내 전체 코드는 jsfiddle] (http://jsfiddle.net/xTuHL/) –

답변

0

통계가 개체 배열 또는 단순한 개체인지 확인하십시오.

이 단순한 객체이기 때문에 직접 사용하는 경우 :

console.log(stats['nick']); 
or 
console.log(stats.nick); 

좋아, 그것은이 시도 객체와 객체 인 경우 : 여기

for (key in stats) 
{ 
    console.log(stats[key].nick); 
} 

샘플 : http://jsfiddle.net/2d6bb/3/

+0

오. 나는 객체의 객체를 가지고있다 –

+0

[link] (http://i.imgur.com/Fw8IVmv.png) –

+0

객체의 객체에 대한 위의 편집 된 대답을 참조하십시오. –

0

다음과 같이 객체 배열과 같은 것이 있다고 생각합니다.

stats = [{},{},{},...]; 

그렇게 당신이 할 수있는 경우 :

var stats = JSON.parse(xmlhttp.responseText); 
for (var index = 0; index<stats.length;index++){ 
    for (var key in stats[index]) { 
     console.log(stats[index][key]); 
    } 
} 

그렇지 않은 경우,이 같은 객체의 객체가 될 것입니다 :

stats = { "stat1": {}, "stat2": {}, "stat3": {}, ...]; 

다음이 작업을 수행 할 수 있습니다

var stats = JSON.parse(xmlhttp.responseText); 
for (var index in stats){ 
    for (var key in stats[index]) { 
     console.log(stats[index][key]); 
    } 
} 

또는 단지 다음과 같은 단일 개체입니다.

다음 당신은 단순히 시도 할 수 있도록

for (var key in stats) { 
    console.log(stats[key]); 
} 

을 당신이 다른 방법에있는 배열과 같은 객체 인 경우, 먼저 underscore.js를 사용할 수 있습니다

stats = _.toArray(stats); 

또는 경우에 돈을 underscore.js을 다른 방법으로 사용하고 싶지 않다면 :

var stats2 = [] 
for (var key in stats) { 
    stats2.push(key); 
} 
stats = stats2; 
+0

괜찮아요, [screenshot] (http://i.imgur.com/EPzeYvn.png) –

+0

하지만 이것도 너무 mutch 이름 –

+0

을 반환하고 내가 사용 ... console.log (통계 [인덱스] [ '닉']); ... –

관련 문제