32

私は配列の配列を持っています:

arr = [["Foo1", "Bar1", "1", "W"], 
["Foo2", "Bar2", "2", "X"], 
["Foo3", "Bar3", "3", "Y"], 
["Foo4", "Bar4", "4", "Z"]]

そして、各配列の 3 番目の列のみを含む配列が必要です。

res = ["1", "2", "3", "4"]

どうすればいいですか?

次のようなものを入力したい:

arr[][2]

しかし、よりRubyのように考えて、私は試しました:

arr.select{ |r| r[2] }

しかし、これは行全体を返します。

4

3 に答える 3

55

あなたがしたいarr.map {|row| row[2]}

arr = [["Foo1", "Bar1", "1", "W"], 
["Foo2", "Bar2", "2", "X"], 
["Foo3", "Bar3", "3", "Y"], 
["Foo4", "Bar4", "4", "Z"]]

arr.map {|row| row[2]}
# => ["1", "2", "3", "4"]
于 2012-07-27T13:17:33.997 に答える
16

別の方法:

arr.transpose[2]
于 2012-07-27T13:49:15.727 に答える
1

マップを使用するか収集します arr.map { |a| [2]}

于 2012-07-27T13:18:36.150 に答える