32

我有一个数组数组:

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

我想要一个只包含每个数组的第三列的数组:

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| a2]}

于 2012-07-27T13:18:36.150 回答