2次元配列の特定の値をキーにしたHashを生成する方法
コード自体はかけたのですが、もう少し上手くかけないかと思い質問致します。
a = [[2014, 3], [2014, 5], [2015, 4], [2016, 2], [2016, 8]]
という配列から、配列の初めの要素に入っている年号をキーにした
{2014 => [3, 5],
2015 => [4],
2016 => [2, 8]}
というHash
を生成したく
a.group_by(&:first).map{|k, v| [k, v.map(&:last)]}.to_h
と書いたのですがかなりわかりにくい気がするので
h = {}
a.each do |k, v|
h[k] ||= []
h[k] << v
end
h
としました。できればもう少しすっきり書きたいのですがもっとシンプルな書き方はありますか?