我想在javascript对象中返回密钥hello.com的第三个节点(hello3.com)。
nodes = {
"hello.com":
{
id:"hello1.com",
id2:"hello2.com",
id3:"hello3.com"
}
}
我知道我可以获取所有这些键/值:
newobject = nodes["hello.com"];
但我怎么会得到第三个。我知道你不能依靠对象中的顺序。如果没有,我可以通过maybeb id3拉出第三个。
答案 0 :(得分:1)
你可以试试这个,
nodes = {
"hello.com": {
id: "hello1.com",
id2: "hello2.com",
id3: "hello3.com"
}
}
console.log(nodes["hello.com"]["id3"]);

答案 1 :(得分:1)
当你说你不能指望对象的属性按照任何特定的顺序时,你回答了自己的问题。如果您的属性本质上是顺序的(您的属性在您的示例中计算在内),那么我建议您尝试使用数组。
nodes = {
"hello.com": [
"hello1.com",
"hello2.com",
"hello3.com"
]
};
在上面的示例中,您将使用
访问第3个属性nodes["hello.com"][2]
双括号表示法是因为"hello.com"
在引号中以允许名称中包含.
。如果密钥不需要引号,例如helloCom
,则可以使用
nodes.helloCom[2]
除此之外,如果您按顺序命名您的键,那么您可以强加一个"命令"。并不是说任何财产都是在另一个财产之前或之后,而是你已经告诉自己你想要它们的顺序。
答案 2 :(得分:0)
BY INDEX:
关于按索引访问,您无法直接实现。您可以获得的最接近的是键数组,但也不保证返回的键的顺序。其他帖子提供了See this answer。
for (var i in nodes["hello.com"]) { console.log(i);//logs id,id2,id3 };
按NODENAME:
节点[" hello.com"]返回对象。您可以使用密钥通过
访问该值1)使用点符号:
nodes["hello.com"].id3
2)或用括号表示法
nodes["hello.com"]["id3"]
答案 3 :(得分:0)
使用:
nodes['hello.com'].id3 or nodes['hello.com']['id3']
两者都是从给定对象获取id3数据的正确方法
答案 4 :(得分:0)
尝试使用以下表达式之一
nodes["hello.com"]["id3"]
或
nodes["hello.com"].id3