プログラミング漫遊記

思ったことや、勉強したことをつらつらと。

【Ruby】2重配列から特定の位置にある要素の配列を作る

先日、ド忘れして困ったので、忘備録として。

たとえば1つ目の要素だけを集めた配列を作りたいとする。 こんな感じ。

# 1つ目の要素だけを集めた配列を作るイメージ
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
=> [1, 4, 7]

Enumerable#mapを使うと簡単

ary = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

ary.map(&:first)
=> [1, 4, 7]

もう少し一般化する。 n番目の要素だけを集めた配列を作りたい場合

ary = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

ary.map { |a| a[n - 1] }

番外編としてArray#transposeを使う方法もある

ary = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
ary.transpose[n - 1]