2

私はこの質問の答えを手伝っていました、そしてそれは私自身の質問を引き起こしました。

  1. Piepiecesオブジェクトで構成された配列を持つPiePieceオブジェクトです。
  2. それぞれPiePieceflavor属性があります

次のようなハッシュを作成するにはどうすればよいですか。

# 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

何か案は?

4

1 に答える 1

5
def inventory
  Hash[pieces.group_by(&:flavor).map{|f,p| [f, p.size]}]
end
于 2010-04-12T22:14:45.930 に答える