如何在JavaScript对象中读取属性?

时间:2014-01-08 23:29:23

标签: javascript object properties

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

返回对象:

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 "

2 个答案:

答案 0 :(得分:0)

查看统计信息是对象数组还是仅仅是一个简单的对象

如果这只是一个简单的对象,那么你直接使用:

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

好的,如果它是带对象的对象,请尝试:

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

此处的示例:http://jsfiddle.net/2d6bb/3/

答案 1 :(得分: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]);
    }
}

或者它只是一个单一的对象,如:

stats = {}

然后你可以试试:

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;