将Ruby数组重组为哈希

4 ruby arrays hash

我有一个数组Products,每个都有一个名称和一个类别.我想生成一个散列,其中每个键都是一个类别字符串,每个元素都是具有该类别的产品,类似于以下内容:

{ "Apple" => [ <Golden Delicious>, <Granny Smith> ], ...
  "Banana" => ...
Run Code Online (Sandbox Code Playgroud)

这可能吗?

sep*_*p2k 8

在1.8.7+或者active_support(或者我认为是facet)中,你可以使用group_by:

products.group_by {|prod| prod.category}
Run Code Online (Sandbox Code Playgroud)