Ruby 初心者スレッド Part 19

このエントリーをはてなブックマークに追加
477デフォルトの名無しさん
each_sliceともちょっと違う?
478デフォルトの名無しさん:2008/05/09(金) 18:07:17
def group_by
  hash = {}
  each do |item|
    key = yield(item)
    (hash[key] ||= []) << item
  end
  hash.collect {|key, arr| arr }
end
こんなメソッドって標準になかったっけ?
479デフォルトの名無しさん:2008/05/09(金) 20:01:55
Enumerable#group_byは1.9と1.8.7だけかな?
もっとも、Hashのままで返すけど。
というか>>478のだと、どのグループかわからなくなるんじゃないか?
480デフォルトの名無しさん:2008/05/09(金) 20:03:15
> hash.collect {|key, arr| arr }
hash.values
481デフォルトの名無しさん:2008/05/09(金) 21:16:18
>>479,480
さんくす
そうだよな、Hash#values があるじゃん
なんて間抜けなんだ