获取对象中键的第n个元素

时间:2016-12-21 05:02:34

标签: javascript jquery

我想在javascript对象中返回密钥hello.com的第三个节点(hello3.com)。

 nodes = {
        "hello.com":
            { 
                id:"hello1.com",
                id2:"hello2.com",
                id3:"hello3.com"
            }
        }

我知道我可以获取所有这些键/值:

 newobject = nodes["hello.com"];

但我怎么会得到第三个。我知道你不能依靠对象中的顺序。如果没有,我可以通过maybeb id3拉出第三个。

5 个答案:

答案 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