2017-04-22 17 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