簡體   English   中英

總和哈希值 Ruby

[英]Sum Hash Values Ruby

我有一個哈希數組

players =  [{:id=>1, :name=>"Alda", :dice_count=>5, :hand=>[6, 5, 2, 4, 3]},
 {:id=>2, :name=>"Gonzalo", :dice_count=>5, :hand=>[1, 5, 1, 1]},
 {:id=>3, :name=>"Markus", :dice_count=>5, :hand=>[6, 2, 5, 1]},
 {:id=>4, :name=>"Luella", :dice_count=>5, :hand=>[4, 5, 1, 6, 5]}]

我想求和數組中每個:hand值的大小。 有沒有一種簡單的方法可以做到這一點?

所以輸出將是每個:hand.size的總和。 在上述情況下,輸出將為18

players.map { |player| player[:hand].size }.reduce(:+) # => 18

單程解決方案:

players.inject(0) { | a, e | a + e[:hand].size } 
# => 18

注意inject只是reduce另一個名稱。

這個只是為了好玩,假設hand總是哈希中的最后一個元素。

p players.map(&:flatten).map(&:last).map(&:size).reduce(:+)

暫無
暫無

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

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