簡體   English   中英

計算Ruby中每個唯一對象屬性的對象總數

[英]Calculate sum of objects for each unique object property in Ruby

我正在為這個問題的答案提供幫助,這引發了我自己的問題。

  1. Pie是一個對象,該對象具有由PiePiece對象組成的pieces數組。
  2. 每個PiePiece都有一個flavor屬性

如何創建如下所示的哈希:

# flavor => number of pieces
{
  :cherry => 3
  :apple => 1
  :strawberry => 2
}

這可行,但我認為可以改進

def inventory
  hash = {}
  pieces.each do |p|
    hash[p.flavor] ||= 0
    hash[p.flavor] += 1
  end
  hash
end

有任何想法嗎?

def inventory
  Hash[pieces.group_by(&:flavor).map{|f,p| [f, p.size]}]
end

暫無
暫無

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

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