2013-08-27 51 views
-2

現在,我有這樣的結構:從哈希數組中提取單個值和鍵?

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

因此,哈希的數組。

如何提取每個哈希值的單個鍵和值?像:

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

回答

3

您可以使用地圖和動態創建僅包含 「ASIN」 新散列:

a.map {|h| {:asin => h[:asin]}} 
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 
+1

'product.select {|鍵,VAL | key ==:asin}'工作,但'{:asin => product [:asin]}'效率更高。 –

+0

複製,yuck :)儘管 - 切片/選擇的方法讓我們輕鬆地選擇更多的鍵如果你想 –

相關問題