从Ruby数组中获取值

时间:2016-05-27 08:06:31

标签: ruby-on-rails ruby

我有一系列哈希:

a = [{"Key1"=>"Value1", "Key2"=>"Value2"}, 
     {"Key1"=>"Value3", "Key2"=>"Value4"},
     {"Key1"=>"Value5", "Key2"=>"Value6"}]

基本上我试图获得只有值而不是任何键的输出。像这样的东西

['Value1', 'Value2', 'Value3', 'Value4', 'Value5', 'Value6']

这是我试过的代码。由于key1key2相同,我将两个键都存储在数组中....

k = ["key1", "key2"]
for i in 0..a.length  
  k.each do |key_to_delete| 
    a[i].delete key_to_delete unless a[i].nil?
  end 
end

然而,这会删除所有值,我得到一个空数组。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:5)

您可以使用Enumerable#flat_map并从每个哈希中获取值:

a.flat_map(&:values)
=> ["Value1", "Value2", "Value3", "Value4", "Value5", "Value6"]

这是对原始问题的回答。