如何在不指定密钥的情况下仅从哈希中获取多个键的值? 这是我的哈希:
{Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13}
答案 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]