h = {1=>[1,2,3], 2=>[4,5,6]} new_arr = [] h.each_value {|arr| new_arr.concat(arr) }
これは機能しますが、それを行うためのよりルビーに似た方法は何ですか?
すべての値は配列ですが、各配列の要素は変更しないでください。
これはどうですか?
h.values.flatten
削減を使用できます:
h.values.reduce(&:+)
やや不可解
h.flat_map(&:last)
少し冗長
h.flat_map{|_, value| value}
ハッシュ値の配列を取得したい場合は、Hash#values を使用します。
new_arr = h.values