数组有两个哈希需要第二个哈希键值对

时间:2016-05-11 10:30:51

标签: arrays ruby hash

我需要简短的方法来找到我从这个

获得的相同回复
k = [
  {"child_category"=>{"name"=>"Acrylic Fiber", "id"=>3405}},
  {"child_category"=>{"name"=>"Aramid Fiber", "id"=>3406}}
] 
o = []
m = k.select!{| i| o << i["child_category"]}

o
#=> [{"name"=>"Acrylic Fiber", "id"=>3405}, {"name"=>"Aramid Fiber", "id"=>3406}]

2 个答案:

答案 0 :(得分:6)

使用Array#map

k.map {|h| h['child_category']}
# => [{"name"=>"Acrylic Fiber", "id"=>3405}, {"name"=>"Aramid Fiber", "id"=>3406}]

答案 1 :(得分:3)

您可以使用Array#flat_mapHash#values

=> hash = [{"child_category"=>{"name"=>"Acrylic Fiber", "id"=>3405}}, {"child_category"=>{"name"=>"Aramid Fiber", "id"=>3406}}] 
=> hash.flat_map(&:values)
=> [{"name"=>"Acrylic Fiber", "id"=>3405}, {"name"=>"Aramid Fiber", "id"=>3406}]
相关问题