- Ruby 初心者スレッド Part 54
705 :デフォルトの名無しさん[sage]:2014/05/01(木) 21:17:38.41 ID:sff33EKO - >>702
>>702 L = [ {sort:1, foo:1, bar:1}, {sort:1, foo:1, bar:2}, {sort:2, foo:1, bar:1} ] L.group_by { |e| e[:sort] }.inject({}) { |outer_hash, (outer_key, inner_hashs)| outer_hash.update outer_key => ( inner_hashs.map { |inner_hash| inner_hash.inject({}) { |hash, (key, val)| if key == :sort hash else hash.update key => val end } } ) } # => {1=>[{:foo=>1, :bar=>1}, {:foo=>1, :bar=>2}], 2=>[{:foo=>1, :bar=>1}]}
|