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

Ruby 从散列数组中提取单个值和键?,ruby,Ruby,现在,我有一个这样的结构: [ { asin: "B000O3GCFU", name: "Thermos...", price: "$10.19" }, { asin: "B0025Y6742", name: "Thermos...", price: "$12.19" } # ... ] 所以,一个哈希数组 如何提取每个散列的单个键和值?比如: [ { asin: "B000O3GCFU" }, { asin: "B0025Y6742" } # ... ] 您可以使用

现在,我有一个这样的结构:

[
  { asin: "B000O3GCFU", name: "Thermos...", price: "$10.19" },
  { asin: "B0025Y6742", name: "Thermos...", price: "$12.19" }
  # ...
]
所以,一个哈希数组

如何提取每个散列的单个键和值?比如:

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

您可以使用map并动态创建仅包含“asin”的新哈希:

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

product.select{key,val{key==:asin}
有效,但是
{:asin=>product[:asin]}
效率更高。不过,重复,恶心:)很严重-如果你想选择更多的键,切片/选择方法可以让你轻松地选择更多的键
product_hash[:product].map do |product|
  product.slice(:asin) # if you have activesupport
  product.select { |key, val| key == :asin } # if you don't
end