Ruby でコードを書くときに、ハッシュの値を取り出して配列に入れたい時が多々あります。
例えば、こんなふうに。
h = {:key1 => "dog", :key2 => "cat", :key3 => "rat"} a = [] h.each { |key, val| a << val } p a # => ["dog", "cat", "rat"]
自前で配列を準備するのは面倒だし、Ruby だったらもう少し綺麗に書けそうですね。
演算結果を配列に入れて返してくれるmap メソッドを使用すれば、次のように1行で書くことができます。
h = {:key1 => "dog", :key2 => "cat", :key3 => "rat"} res = h.map{ |key, val| val } p res # => ["dog", "cat", "rat"]
便利ですね!
追記--
@willnet さんからコメント頂きました。
Hash#values を使っても、お手軽に同じ結果が得られました。
h = {:key1 => "dog", :key2 => "cat", :key3 => "rat"} p h.values
こちらを使ったほうが良いですね。
@willnet さんありがとう御座います!