2014-01-08 56 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'是一組東西。也許不是所有人都有一個叫做「尼克」的領域?或者,也許你的數組大小錯了。而不是'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

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

+0

請參閱我上面編輯的對象對象的答案。 –

0

我覺得你有像對象的數組somrthing,如:

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]); 
    } 
} 

,或者它是隻是簡單的單個對象,如:

stats = {} 

那麼你可以簡單地嘗試:

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

所以如果你有不同的方式類似陣列的對象,首先你可以使用underscore.js

stats = _.toArray(stats); 

,或者如果你不't想要使用underscore.js另一種方式是:

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

好吧,[截圖](http://i.imgur.com/EPzeYvn.png) –

+0

但這個回報太mutch名 –

+0

,我用... console.log(stats [index] ['nick']); ... –