rubyでmap_with_indexを実現する方法

each_with_index。
たまに使う必要が出てくる。

でも、map_with_indexって無いよね。
たまに使う必要が出てくるのに。

しかしそこはrubyさん、with_indexという神がかったメソッドがいまして、

[:a, :b, :c].map.with_index do |data, index|
  # indexは 0, 1, 2というカウンタ
end

こんなことができるようだ!

with_indexにはもっと別の便利な使い方があって、

[:a, :b, :c].each_with_index do |data, index|
  puts index + 1
end

みたいに、index + 1とする場合は結構ある。
こんな時に.with_indexの出番です。

[:a, :b, :c].each.with_index(1) do |data, index|
  puts index
end

これでキモい+1がなくなった。
めでたしめでたし。

タイトルとURLをコピーしました