访问复杂的javascript对象属性,

访问复杂的javascript对象属性,,javascript,Javascript,我有一个对象示例页面: { "page_1": { "stats": { "stat_1": 20, "stat_2": 40 } "ahkam": { //Staff } } "page_2": { //staff } } 如何访问stat_2的值? 我使用了这个表达,但我不知道为什么它不起作用: Object.keys(pag

我有一个对象示例
页面

{
"page_1":
   {
     "stats":
       {
         "stat_1": 20,
         "stat_2": 40
       }
     "ahkam":
       {
         //Staff
       }
   }
"page_2":
   {
      //staff
   }
}
如何访问
stat_2
的值? 我使用了这个表达,但我不知道为什么它不起作用:

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


这是数据的可视化:

因此,要达到目的,您需要使用:

var stat = pages.page_1.stats.stat_2;
如果“
page_1
”是动态的,则可以使用(也称为下标表示法):

如果“
stat_2
”也是动态的,那么同样可以使用相同的符号:

var key = 'page_' + x;
var stat = pages[key].stats.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'
是字符串文字,但可以是任何表达式。

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

  Page.page_1.stats.stat_1

“那句话”?什么表达式?对不起,我已经更正了。包含这些对象的对象的名称是什么?对象的
键是什么?为什么不干脆
pages.page_1.stats.stat_1
?page_x是一个键,我需要通过它解析“pages”对象page_1是一个变量,它是解析对象的键,它是字符串format@HoussemBdr,好的,然后使用下标符号。示例updated.FYI,它被称为括号表示法@菲利克斯克林,显然它有很多名字。Crockford使用这个术语。因此,如果有人正在查找,他们可能应该尝试两种版本。无论如何,答案更新了两个版本,谢谢链接。
  Page.page_1.stats.stat_1