Подтвердить что ты не робот

Выделить все элементы из одного столбца в массиве массивов в Ruby?

У меня есть массив массивов:

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-like, я пробовал:

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

но это возвращает всю строку.

4b9b3361

Ответ 1

Вы хотите 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"]

Ответ 2

Другой метод:

arr.transpose[2]

Ответ 3

Использовать карту или собирать arr.map {| a | а [2]}