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

如何读取JavaScript对象中的属性?,javascript,object,properties,Javascript,Object,Properties,如何读取属性 如果我尝试console.logstats[index][nick'];,我有一个错误:无法读取未定义的属性“nick”。查看stats是一个对象数组还是一个简单对象 如果这只是一个简单的对象,那么您可以直接使用: Object {nick: "Okorok", uniq: "STEAM_0:0:XX", teamkill: 4, damage: 619592, deaths: 1727…} 好的,如果是带有对象的对象,请尝试以下操作: console.log(stats['ni

如何读取属性

如果我尝试console.logstats[index][nick'];,我有一个错误:无法读取未定义的属性“nick”。

查看stats是一个对象数组还是一个简单对象

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

Object {nick: "Okorok", uniq: "STEAM_0:0:XX", teamkill: 4, damage: 619592, deaths: 1727…}
好的,如果是带有对象的对象,请尝试以下操作:

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

这里有一个例子:

我想你有一些类似于一组对象的东西,比如:

for ( key in stats)
{
    console.log(stats[key].nick);
}
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 = [{},{},{},...];
stats = { "stat1": {}, "stat2": {}, "stat3": {}, ...];
然后你可以这样做:

stats = [{},{},{},...];
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 = {}
因此,如果它是一个类似数组的对象,则必须采用不同的方法,首先可以使用:

或者,如果您不想使用,另一种方法是:

stats = _.toArray(stats);

在我看来,统计数据是一系列的东西。也许不是所有人都有一个叫尼克的领域?或者,可能是数组大小错误。而不是索引哦。我反对你的欢迎。将JSIDLE更正为:如果在stats{console.logstats[key].nick;}中的var键的xmlhttp.status==200{var stats=JSON.parsexmlhttp.responseText;则不更正JSIDLE。这对将来阅读它的人来说只是一种困惑。我刚刚发布了JSFIDLE与问题不同的帖子,然后意识到我必须编辑我的帖子。如果人们想知道正确的答案,他们可以在这里的“答案”下阅读。这个答案的一个问题是,你可以以任何顺序获得输出,而以前的方法,如果它起作用的话,会以数字顺序给出。我不知道你是否关心这个。但是这个返回太多了。它不是一个数组。它是一个对象,但键是数字,就像它是一个基于1的数组一样。
var stats2 = []
for (var key in stats) {
    stats2.push(key);
}
stats = stats2;