ruby(railsでも可)で下記のような配列を任意のindex番号で分割する方法を教えてください。
ruby
1arr = [1,2,3,4,5,6,7,8,9,10]
の配列を、任意のindex番号が2, 4, 7だった場合に下記のように分けたいです。
(指定したindex番号が先頭になる配列に分割したい)
ruby
1[1,2] 2[3,4] 3[5,6,7] 4[8,9,10]
今考えているのは
ruby
1arr = [1,2,3,4,5,6,7,8,9,10] 2offsets = [2, 4, 7] 3offset = 0 4 5result = offsets.each_with_object([]) do |n, result| 6 result.push arr[offset..(n - 2)] 7 offset = n - 1 8end 9result.push arr[offset..-1]
という感じです。offsetsは数値を直書きしてますが実際は要素数が不定、かつindex番号も不定の変数になります。(index番号は元の配列の長さを超えないこととします)
この場合、どのように記述すれば↑のコードより完結かつ高速に処理できるか教えていただきたいです。
何卒よろしくお願いします!
回答3件
あなたの回答
tips
プレビュー