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