从散列数组中提取单个值和键?

时间:2013-08-27 09:35:28

标签: ruby

现在,我有这样的结构:

[
  { asin: "B000O3GCFU", name: "Thermos...", price: "$10.19" },
  { asin: "B0025Y6742", name: "Thermos...", price: "$12.19" }
  # ...
]

所以,一系列哈希。

如何提取每个哈希的单个键和值?像:

[
  { asin: "B000O3GCFU" },
  { asin: "B0025Y6742" }
  # ...
]

2 个答案:

答案 0 :(得分:3)

您可以使用地图并创建仅包含“asin”的新哈希值:

 a.map {|h| {:asin => h[:asin]}}

答案 1 :(得分:1)

product_hash[:product].map do |product|
  product.slice(:asin) # if you have activesupport
  product.select { |key, val| key == :asin } # if you don't
end