如何在Ruby中简化这个?

时间:2011-03-07 05:04:10

标签: ruby hash

有没有更好的方法来做同样的事情?

objects = []
outer_h.values.each do |inner_h|
  inner_h.values.each do |obj|
    objects << obj
  end
end

我使用Ruby 1.9.2。

2 个答案:

答案 0 :(得分:5)

objects = outer_h.values.map(&:values).flatten将有效:

h = {
  1 => { :foo => "bar", :bar => "baz" },
  2 => { :foo => "rab", :bar => "zab" },
}

h.values.map(&:values).flatten  #=> ["bar", "baz", "rab", "zab"] 

答案 1 :(得分:0)

outer_h.flatten怎么样?我认为它可能仅适用于数组。