Techioz Blog

Ruby、配列を指定されたインデックスで 2 つのサブ配列に分割する組み込みメソッドはありますか?

概要

Ruby の問題を解いて、もっと簡単な方法があるはずだと考えました。

指定されたインデックスの配列を 2 つのサブ配列に分割したいと考えています。最初のサブ配列には指定されたインデックスまでの数値が含まれ、2 番目のサブ配列には指定されたインデックス以降の数値が含まれます。

([2, 1, 2, 2, 2],2) => [2,1] [2,2,2]
#here, the specified index is two, so the first array is index 0 and 1, 
the second is index 2, 3, and 4. 

def array_split(arr,i)
  arr1 = []
  arr2 = []
  x = 0

  while x < arr.count 
    x < i ? arr1 << arr[x] : arr2 << arr[x]
    x += 1
 end 

 return arr1, arr2
end

これは while ループでは問題ありませんでした。もっと簡単な解決策があるかどうか知りたいです。

解決策

がある :)

arr1 = [2, 1, 2, 2, 2].take 2 #=> [2, 1]
arr2 = [2, 1, 2, 2, 2].drop 2 #=> [2, 2, 2]