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