簡體   English   中英

從哈希數組中提取值

[英]Extract values from an array of hashes

我需要從哈希數組中提取值:

data =
[{:diaria_media=>"103.58908136482939632545931759", 
  :room_night=>"1143",
  :valor_periodo=>"118402.320000"},   
 {:diaria_media=>"307.46792079207920792079207921", 
  :room_night=>"101",
  :valor_periodo=>"31054.260000"},
 {:diaria_media=>"313.000000",
  :room_night=>"9",
  :valor_periodo=>"2817.000000"},
 {:diaria_media=>"0.0",
  :room_night=>"7",
  :valor_periodo=>"0.0"},
 {:diaria_media=>"4.4630434782608695652173913043",
  :room_night=>"414",
  :valor_periodo=>"1847.700000"},
 {:diaria_media=>"150.89382627422828427853553482",
  :room_night=>"1393",
  :valor_periodo=>"210195.100000"}, 
 {:diaria_media=>"221.11425992779783393501805054",
  :room_night=>"554",
  :valor_periodo=>"122497.300000"},
 {:diaria_media=>"36.919200",
  :room_night=>"25",
  :valor_periodo=>"922.980000"},
 {:diaria_media=>"31.967530864197530864197530864",
  :room_night=>"81",
  :valor_periodo=>"2589.370000"},
 {:diaria_media=>"0",
  :room_night=>"0",
  :valor_periodo=>"0.000000"}]

我需要獲取所有:room night字段並添加值。 做到這一點的最佳方法是什么?

第一:尋求幫助並像以前那樣格式化問題不是很好。 第二:這個問題與Rails或Savon無關。 這是一個純粹的Ruby問題。 解決方案對我來說似乎很簡單。 您遍歷數組並總結每個鍵的數字:room_night例如:

nights = 0
data.each do |booking|
    nights += booking[:room_night].to_i
end
print "nights=#{nights}\n"

如果您開始運作,那就更加簡單了:

nights = data.map{|e| e[:room_night].to_i}.reduce(:+)

並做了!

另外,我將可執行腳本放入Pastbin https://pastebin.com/29nMTYrK

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM