在红宝石中平铺一排哈希

我有一些简单的代码看起来像这样:

fruit.each do |c|
  c.each do |key, value|
    puts value
  end
end

这样做很好,但感觉像是红宝石。我的目标是采取这个数组:

[{"fruit_id"=>"1"}, {"fruit_id"=>"2"}, {"fruit_id"=>"3"}]

并将其转换为:

[ "1", "2", "3" ]

思考?

如果它在Rails中,或者如果您已经定义了to_proc,那么可以比@ toholio的解决方案稍短一点:

arr = [{"fruit_id"=>"1"}, {"fruit_id"=>"2"}, {"fruit_id"=>"3"}]
out = arr.map(&:values).flatten # => ["1", "2", "3"]
http://stackoverflow.com/questions/1036018/flatten-an-array-of-hashes-in-ruby

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在红宝石中平铺一排哈希