我有一个数组数组:
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] }
但这会返回整行。
答案 0 :(得分:47)
您想要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"]
答案 1 :(得分:15)
另一种方法:
arr.transpose[2]
答案 2 :(得分:1)
使用地图或收集 arr.map {| a |一个[2]}