因此,使用普通哈希,您可以使用它来获取密钥:
hash.keys
如何获取多维哈希的第二维的键,如下所示:
{"<id>"=>{"first_name"=>"test", "last_name"=>"test_l", "username"=>"test_user",
"title"=>"Sales Manager", "office"=>"test", "email"=>"test@test.com"}}
<id>
对每个项目都是唯一的。
所以我想从上面得到的钥匙是:first_name, last_name, username, title, office and email
答案 0 :(得分:4)
您可以这样做:
hash["<id>"].keys
答案 1 :(得分:2)
以下内容将为您提供二级哈希中使用的所有键。我使用了uniq
,因此您不会重复。
hash.collect { |k, v| v.keys }.flatten.uniq
答案 2 :(得分:2)
假设你有一个哈希,它有一个带有一个值的未知密钥:哈希。
h = {"<id>"=>{"first_name"=>"test", "last_name"=>"test_l", "username"=>"test_user",
"title"=>"Sales Manager", "office"=>"test", "email"=>"test@test.com"}}
p h[h.keys.first].keys
#=> ["first_name", "last_name", "username", "title", "office", "email"]
(但每次我看到这样的结构时,我都想知道为什么它不是一个结构)。
答案 3 :(得分:2)
我假设你的意思是在基本散列中会有几个唯一的“id”键指向嵌套的散列,每个散列都包含“first_name”,“last_name”等键。如果是这样的话:
hash.values.map(&:keys)
将返回包含每个嵌套哈希的键的数组数组。
另一方面,如果你只有一个键值对(如你的例子),你可以做
hash.values.first.keys
将返回与单独嵌套哈希中的键对应的平面数组。