访问复杂的JavaScript对象属性,

时间:2013-07-20 09:23:45

标签: javascript

我有对象示例pages

{
"page_1":
   {
     "stats":
       {
         "stat_1": 20,
         "stat_2": 40
       }
     "ahkam":
       {
         //Staff
       }
   }
"page_2":
   {
      //staff
   }
}

如何才能访问stat_2的值? 我使用了那个表达式,但我不知道为什么它不起作用:

Object.keys(pages["page_1"].stats)["stat_1"]

3 个答案:

答案 0 :(得分:2)

这是数据的可视化:

enter image description here

因此,要实现目标,您需要使用:

var stat = pages.page_1.stats.stat_2;

如果“page_1”是动态的,那么您可以使用bracket notation(也称为下标符号):

var key = 'page_' + x;
var stat = pages[key].stats.stat_2;

如果“stat_2”也是动态的,那么您可以使用相同的表示法:

var pageKey = 'page_' + x;
var statKey = 'stat_' + n;
var stat = pages[pageKey].stats[statKey];

或者你可以在整个表达中使用这种表示法:

var stat = pages[pageKey]['stats'][statKey];

基本上,a.b.c相当于a['b']['c'],在这种情况下,'b''c'是字符串文字,但可以是任何表达式。

答案 1 :(得分:0)

as

obj = { 
       field1: {
                stat1: "string";
       }
}


obj.field1.stat1

答案 2 :(得分:0)

这还不够, 将该对象分配给var Page = {....}

  Page.page_1.stats.stat_1