访问复杂的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