我有一个可能是这样的对象:
Object {data: Object, status: "OK"}
在这种情况下,data
是另一个可能类似于:
0: Object
1: Object
...
最后,在数据中的每个单独对象内部保存我感兴趣的实际信息,例如
0: Object
name: "somename"
fax: "somenum"
如何从对象0中专门读取name
的值?
答案 0 :(得分:2)
只需引用其属性名称即可引用嵌套对象。因此,如果您有多个级别的嵌套对象,请执行以下操作:
var myvar = {
data: {
moreData: {
name: "somename",
fax: "somenum"
}
}
};
然后,您可以像这样引用名称:
var name = myvar.data.moreData.name;
在Javascript中,与上面的点符号一起使用的属性名称必须是字符串,因此如果您的属性(如问题中所示为0
),那么您可以使用["propname"]
语法这样:
var myvar = {
data: {
"0": {
name: "somename",
fax: "somenum"
}
}
};
var name = myvar.data["0"].name;
或
var name = myvar.data[0].name;
因为你不能这样做:
var name = myvar.data.0.name;
因为Javascript语法不允许以点引用的属性名称以数字开头。
P.S。如果你的对象实际上是数组,如下所示:
var myvar = {
data: [{
name: "somename",
fax: "somenum"
},
{
name: "someothername",
fax: "someothernum"
}
]
};
然后,你可以使用这样的语法:
var name = myvar.data[0].name;
var name = myvar.data[1].name;
答案 1 :(得分:-1)
你可以使用getter:
var obj = {
data: [
{ name: "John" }
],
get full() { return this.data[0].name + " Smith"; }
}