如何在Ruby中简化这个?

1 ruby hash

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

objects = []
outer_h.values.each do |inner_h|
  inner_h.values.each do |obj|
    objects << obj
  end
end
Run Code Online (Sandbox Code Playgroud)

我使用Ruby 1.9.2.

Dan*_*ail 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"] 
Run Code Online (Sandbox Code Playgroud)

  • 如果使用ruby 1.9.2,请使用`flat_map`简化它. (5认同)