【Ruby】配列を区切る方法

Ruby

こんにちは、moegi (@moegi_web) です。
今回はRuby で配列を区切る方法についてまとめました。

each_sliceメソッド

each_slice メソッドを使用すると、配列を指定したサイズのグループに分割することができます。n 要素ずつブロックに渡して繰り返し、要素数が n で割り切れないときは最後の回だけ要素数が減ります。

array = [1, 2, 3, 4, 5, 6]

array.each_slice(2) do |slice|
p slice
end

# 出力結果
# [1, 2]
# [3, 4]
# [5, 6]

slice_whenメソッド

slice_when メソッドを使用すると、配列を特定の条件で区切ることができます。

array = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]

array.slice_when { |i, j| i + 1 != j }.to_a
# 出力結果
# [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

each_consメソッド

each_cons メソッドを使用すると、配列を指定した数の要素ごとに区切ることができます。要素を重複ありで n 要素ずつに区切り、ブロックに渡して繰り返します。

array = [1, 2, 3, 4, 5, 6]

array.each_cons(3) do |slice|
p slice
end

# 出力結果
# [1, 2, 3]
# [2, 3, 4]
# [3, 4, 5]
# [4, 5, 6]

each_indexメソッド

each_index メソッドを使用すると、配列を指定した数の要素ごとに区切ることができます。

array = [1, 2, 3, 4, 5, 6]

array.each_index do |i|
p array[i, 3]
break if i + 3 > array.size
end

# 出力結果
# [1, 2, 3]
# [4, 5, 6]

まとめ

コメント

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