从另一个对象内的特定对象读取值

时间:2015-08-31 07:53:47

标签: javascript

我有一个可能是这样的对象:

Object {data: Object, status: "OK"}

在这种情况下,data是另一个可能类似于:

的对象
0: Object
1: Object
... 

最后,在数据中的每个单独对象内部保存我感兴趣的实际信息,例如

0: Object
  name: "somename"
  fax: "somenum"

如何从对象0中专门读取name的值?

2 个答案:

答案 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"; }
}