2016-12-21 60 views
-1

我想返回JavaScript對象中的鍵hello.com的第三個節點(hello3.com)。獲取對象中某個鍵的第n個元素

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

我知道我可以獲取所有這樣的鍵/值:

newobject = nodes["hello.com"]; 

,但我怎麼會得到第三。我知道你不能依靠對象的順序。如果沒有,我可以通過maybeb id3拉第三個。

+0

之一,你可以試試這個'''NEWOBJECT =節點[ 'hello.com'] [ 'ID3']'''如果這是你想要的固定鍵。 – aavrug

+0

因爲根本沒有數組,所以沒有'第n個元素' –

+0

對象屬性沒有固有的順序。如果你想保證訂單使用數組。你*可以*獲得所有屬性名稱的列表('Object.keys(nodes [「hello.com」])'),然後對該列表進行排序並採取第三個... – nnnnnn

回答

1

你可以試試這個,

nodes = { 
 
    "hello.com": { 
 
    id: "hello1.com", 
 
    id2: "hello2.com", 
 
    id3: "hello3.com" 
 
    } 
 
} 
 
console.log(nodes["hello.com"]["id3"]);

+0

這太好了。這會拉動id3的值。因此,除了知道該鍵id3的名稱之外,沒有辦法拉取第三個元素的鍵名和值? – obreezy

+0

@obreezy yes總是在'特定'的情況下,您需要使用'key'來獲取價值。否則,循環並打印everthing。如果有幫助,請接受並註冊,以便對其他人有所幫助。謝謝。 – ScanQR

0

通過索引:

關於通過索引訪問,你不能直接實現它。你可以得到的最接近的是數組鍵,但也不能保證返回鍵的順序。 See this answer在其他線程上提供。

for (var i in nodes["hello.com"]) { console.log(i);//logs id,id2,id3 }; 

BY NODENAME:

節點[ 「hello.com」]返回對象。您可以使用鍵通過使用點符號

1)訪問值:

nodes["hello.com"].id3 

2)或由括號標記

nodes["hello.com"]["id3"] 
0

用途:

nodes['hello.com'].id3 or nodes['hello.com']['id3'] 

兩者都是corrent辦法從給定的對象

1

當你說你不能在一個對象的屬性計算是在你回答了你自己的問題得到ID3數據任何特定的順序。如果你的屬性本質上是順序的(你的屬性在你的例子中正在計數),那麼我會建議嘗試使用一個數組。

nodes = { 
    "hello.com": [ 
     "hello1.com", 
     "hello2.com", 
     "hello3.com" 
    ] 
}; 

在上面的例子中,你將與

nodes["hello.com"][2] 

進入第三屬性的雙括號標記是因爲"hello.com"是在引號允許在名稱中.。如果該鍵沒有需要引號,像helloCom作爲一個例子,你可以使用

nodes.helloCom[2] 

除此之外,如果您按順序命名你的鑰匙,那麼你可以強加一個「秩序」。這並不是說任何財產都是在別人之前或之後,而是你已經告訴自己你想要的是什麼樣的秩序。

+0

在這種情況下,如何獲取數組中的第三項hello.com對象鍵 – obreezy

+0

我編輯了一個示例到我的答案中。 – Euroclydon37

+0

已編輯!謝謝。這裏遲到了。大聲笑 – Euroclydon37

0

試試下面的表達式

nodes["hello.com"]["id3"] 

nodes["hello.com"].id3 
相關問題