获取哈希值

时间:2013-11-21 15:04:18

标签: ruby-on-rails ruby

如何在不指定密钥的情况下仅从哈希中获取多个键的值? 这是我的哈希:

{Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13} 

4 个答案:

答案 0 :(得分:6)

哈希#值

a = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13}
a.values

结果:

[12, 15, 13] 

答案 1 :(得分:0)

假设你只想要你的偶数值并希望将它们分配给一个类似的数组...在哈希上使用.even_value方法:

hash = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13} 
array = []
hash.each_value {|i| array << i if i.even? }
puts array # [12]

http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-each_value

.even_value只会查看这些值,并允许您在其上或您需要的任何地方选择样式选项!

答案 2 :(得分:0)

你所要求的并不是100%清楚,但是如果你想使用某种谓词来选择值,你想使用#select。

hash = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13} 
results = hash.each_value.select { |v| ... }

...是您要指定的条件。可以是v.even?v.odd?v % 3 == 0任何其他布尔值。

答案 3 :(得分:0)

因为我只需要来自该哈希的键的值(或不需要,如何关心)

h = {Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13}
h.each_value {|v| t << v}
t => [12, 15, 13]