首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问复杂的javascript对象属性,

访问复杂的javascript对象属性,
EN

Stack Overflow用户
提问于 2013-07-20 17:23:45
回答 3查看 119关注 0票数 1

我有那个对象样本pages

代码语言:javascript
运行
复制
{
"page_1":
   {
     "stats":
       {
         "stat_1": 20,
         "stat_2": 40
       }
     "ahkam":
       {
         //Staff
       }
   }
"page_2":
   {
      //staff
   }
}

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

代码语言:javascript
运行
复制
Object.keys(pages["page_1"].stats)["stat_1"]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-20 17:28:38

这是数据的可视化:

因此,要实现这一点,您需要使用:

代码语言:javascript
运行
复制
var stat = pages.page_1.stats.stat_2;

如果"page_1“是动态的,那么您可以使用bracket notation (也称为下标表示法):

代码语言:javascript
运行
复制
var key = 'page_' + x;
var stat = pages[key].stats.stat_2;

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

代码语言:javascript
运行
复制
var pageKey = 'page_' + x;
var statKey = 'stat_' + n;
var stat = pages[pageKey].stats[statKey];

或者您可以对整个表达式使用此表示法:

代码语言:javascript
运行
复制
var stat = pages[pageKey]['stats'][statKey];

基本上,a.b.c等同于a['b']['c'],在本例中,'b''c'是字符串文字,但可以是任何表达式。

票数 2
EN

Stack Overflow用户

发布于 2013-07-20 17:27:52

作为

代码语言:javascript
运行
复制
obj = { 
       field1: {
                stat1: "string";
       }
}


obj.field1.stat1
票数 0
EN

Stack Overflow用户

发布于 2013-07-20 17:29:51

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

代码语言:javascript
运行
复制
  Page.page_1.stats.stat_1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17760731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档