Rubyで2次元配列をハッシュに変換するときキーが重複していたら値を足したい

  • 1
    いいね
  • 0
    コメント

文章にするとわけわからんけど要は、Rubyでこのを2次元配列を


[[tanaka, 1], [yamada, 2], [sato, 3], [tanaka, 4]]

こう変換したいとき


{
  "tanaka": 5,
  "yamada": 2,
  "sato": 3
}

どうするかという話。

結果は簡単でeach_with_objectを使えば終わり。


arr = [[tanaka, 1], [yamada, 2], [sato, 3], [tanaka, 4]]
arr.each_with_object(Hash.new(0)) {|(k, v), h| h[k] += v}

1行でできるのすごい。

元ネタ