2013-10-15 102 views
0

现在我有一个双哈希称为像下面的数据项:如何获得哈希

data [name][action] 

data = {"Mike" => {"Walked" => 13, "Ran" => 5}, "Steve" => {...}} 

对于这个特定的哈希,我真的不知道在哈希键,我只是想遍历它,就像这样:

data.each |item| do 
    #how to get the key name for item here? 
    puts item["Walked"].to_s 
    puts item["Ran"].to_s 
end 

我想拿到钥匙,所以我可以在旁边VA在表中显示它梅毒。

+2

[哈希#each_pair {|键,值|块}](http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-each_pair) – iamnotmaynard

回答

1

您可以使用每一个键,值的语法,如each documentation描述:

data.each do |key, values| 
    puts key.to_s 
    values.each do |value| 
    value.to_s 
    end 
end 

你也可以使用keysvalues取决于你想达到什么。

data.keys.each do |key| 
    puts key #lists all keys 
end 

data.values.each do |value| 
    puts value #lists all values 
end 

data.keys.first #first key 

等等。

2

可以使用迭代一个哈希:

data.each do |key, value| 

end 
+0

感谢您的快速回复 – Chris