group_byはブロックの戻り値が同じ値だったものをグループ化し配列にし、ブロックの戻り値をキーにしたハッシュで返してくれます。
例えば2文字目が同じという場合には以下のように書くことができ、
ruby
1["apple", "pen", "book", "soccer"].group_by{|value| value[1] }
2#=> {"p"=>["apple"], "e"=>["pen"], "o"=>["book", "soccer"]}
"book"と"soccer"は2文字目の文字(インデックス[1])が同じ"o"なので、グループ化されて配列になり返されます。
型(class)が同じという場合にも同じように、このように取得することができます。
ruby
1["apple", 1, "pen", 2, "book"].group_by{|value| value.class }
2#=> {String=>["apple", "pen", "book"], Fixnum=>[1, 2]}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/15 07:43