1
h = {1=>[1,2,3], 2=>[4,5,6]}
new_arr = []
h.each_value {|arr|
  new_arr.concat(arr)
}

これは機能しますが、それを行うためのよりルビーに似た方法は何ですか?

すべての値は配列ですが、各配列の要素は変更しないでください。

4

4 に答える 4

10

これはどうですか?

h.values.flatten
于 2012-05-08T13:44:34.450 に答える
4

削減を使用できます:

h.values.reduce(&:+)
于 2012-05-08T13:42:02.643 に答える
1

やや不可解

h.flat_map(&:last)

少し冗長

h.flat_map{|_, value| value}
于 2013-04-13T09:51:29.420 に答える
0

ハッシュ値の配列を取得したい場合は、Hash#values を使用します。

new_arr = h.values
于 2012-05-08T13:57:59.780 に答える