2017-04-22 25 views
0

如果我有一個像一本字典:訪問元/玉

x = {"A" : 1, "B" : 2 } 

而且我通過這本詞典進入哈巴狗文件,我怎麼能不經過中所有元素訪問特定鍵值詞典?

例如, x[A]

我能想到的,現在唯一的辦法就是通過元素迭代:

for key, val in x 

再有,如果有條件在那裏顯示valkey等於A

我在這裏錯過了一些明顯的東西嗎?

+1

這將是'x.A',與普通JavaScript相同。 – Ryan

+0

是的,你是對的:) – FieryCod

+0

如果你有比這更復雜的索引(不只是'A'或'B'。),你也可以像訪問數組一樣訪問它。你原來的問題很接近。只要做'x [「A」]','x [「B」]'等 –

回答

-1

每個Javascript對象都是一個關聯數組,這是您可以發明的最普通的數組類型 - 有時這稱爲哈希或映射結構或字典對象。 關聯數組只是一組鍵值對。 該值與其關鍵字相關聯存儲,如果您提供該關鍵字,則該數組將返回該值。 這是一個關聯數組,名稱來自鍵和值之間的關聯。關鍵是一種可用於檢索存儲值的廣義地址。 例如:

array={key1: 'value1',key2:'value2'}; 

創建名爲陣列具有兩個鍵和其在這種情況下,恰好是兩個恆定字符串兩個值的對象。 請注意,存儲的值可以是任何JavaScript對象,並且在此示例中,最好考慮存儲兩個字符串對象而不是兩個字符串文字。 關鍵字可以是標識符,字符串或數字,但更多關於我們進展時鍵類型的差異。 您可以通過它檢索值鍵使用數組表示法:

console.log(array['key2']); 

其中顯示的字符串值2。如果您嘗試訪問不存在的密鑰,則會得到未定義的結果。

由於關聯數組被用作JavaScript對象的基礎,因此有一種替代方法可以訪問使鍵看起來像屬性的值。也就是說,你可以在Access中使用「屬性語法」的值:

console.log(array.key2); 

所以在玉/哈巴狗如果您通過X它會告訴你類似的結果,就像在JS。如果您通過x字典您.pug文件,你可以簡單地顯示了使用${x.A},同一本詞典的關鍵1在正常javascript

${x["A"]} or ${x.A} 
+0

我可以請求你請在你的答案中添加更多的上下文。僅有代碼的答案很難理解。如果您可以在帖子中添加更多信息,它可以幫助提問者和未來的讀者。 – RBT

+1

嗨,我更新了我的答案。讓我知道,如果它現在更容易理解 – orvi

+0

嗨@RBT似乎這篇文章沒有得到足夠的重視。你會建議我請如何改進?或者我在這裏犯了什麼錯誤? – orvi

1

:你的情況,這將是類似的東西。 一定要在表達式之間添加反碼。

+0

好的,如果這個值來自另一個變量,例如'y = {「X」:「A」,「Y」:「B」},我想用y [「X」]的值並將它作爲x的關鍵字,即'x [y [「X」] = x [「A」] = 1' – Harvinder

+0

您可以同時使用'$ {xA}','$ {x [y [「X」 ]]}'以及'$ {x [yX]}'據我所知。 – FieryCod