1. ホーム
  2. ruby

[解決済み] Rubyでindexを使ったマップを作るには?

2022-03-21 15:51:48

質問

を変換する最も簡単な方法は何ですか?

[x1, x2, x3, ... , xN]

になります。

[[x1, 2], [x2, 3], [x3, 4], ... , [xN, N+1]]

解決方法は?

ruby 1.8.7 または 1.9 を使っている場合、イテレータメソッドである each_with_index ブロックなしで呼び出された場合 Enumerator オブジェクトを呼び出すことができます。 Enumerable のようなメソッドを使用します。 map にしています。だから、できるんです。

arr.each_with_index.map { |x,i| [x, i+2] }

1.8.6ではできるようになりました。

require 'enumerator'
arr.enum_for(:each_with_index).map { |x,i| [x, i+2] }