1

コンテンツに基づいて、配列の文字列要素を group_by したい。

["abc", "abc", "def", "ghi", "ghi"].group_by { |x| some code }

だから私はそれを返したい:

[["abc", "abc", "abc"],["def"],["ghi", "ghi"]]

私は次のことを試しました:

irb(main):065:0> ["abc", "abc", "def", "ghi", "ghi"].group_by { |x| x }

戻り値:{"abc"=>["abc", "abc"], "def"=>["def"], "ghi"=>["ghi", "ghi"]}

それを行う最良の方法は何ですか?

4

5 に答える 5

0

それほど単純ではありませんが、それはあなたが望むことをするでしょう:

["abc", "abc", "def", "ghi", "ghi"].group_by{|x|x}.each_with_index.inject({}){|m,a|m[a[1]]=a[0];m}
于 2013-08-08T18:32:58.470 に答える