Techioz Blog

Ruby - 配列をハッシュマップにマッピングする

概要

配列と、値を指定して値を返す関数があります。最終的には、配列の値をキー値として、f(key_value) の結果を値として持つハッシュマップを作成したいと考えています。配列の each/map と同様に、ブロックを使用してこれを行うクリーンで簡単な方法はありますか?

したがって、次と同等のもの

hsh = {}
[1,2,3,4].each do |x|
  hsh[x] = f(x)
end

しかし、シンプルで 1 行という点では、これに似ています。

results = array.map { | x | f(x) }

解決策

Ruby 2.1.0 以降では、次のように Array#to_h も使用できることに注意してください。

[1,2,3,4].map{ |x| [x, f(x)] }.to_h