【Ruby】配列を指定した要素数ごとにグループ化して処理を実施できるeach_sliceメソッドについて解説します

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。

この記事では、 Rubyで配列を指定した要素数ごとにグループ化して処理を実施できるeach_sliceメソッドについて

  • each_sliceメソッドとは
  • each_sliceメソッドを使ったサンプルプログラム

と、この記事で丁寧に解説していきます。

前提条件

この記事で使っているRubyのバージョンは、2.6.6です。

Rubyのインストールは、下の記事をご参考ください。

each_sliceメソッドとは

each_sliceメソッドとはとは、配列を指定した数でグループ化するメソッドです。

each_sliceメソッドは使い方が

  • パターン1:ブロックなしの場合
  • パターン2:ブロックありの場合

の合計2パターンあります。
それぞれ解説します。

パターン1:ブロックなしの場合

ブロックなしの場合は、下記のように使います。

上記の例だと、resultには配列[[“aa”, “bb”],[“cc”, “dd”],[“ee”]]が返されます。

パターン2:ブロックありの場合

ブロックありの場合は、グループ化した後、それぞれのグループに対して同じ処理を実施することができます。
パターン1と異なるのは、返り値がないことです。
パターン2は、下記のように使います。

実行すると、

[“aa”, “bb”]
[“cc”, “dd”]
[“ee”]

と、表示されます。

では、次の章で実際に使ってみます。

each_sliceメソッドを解説するプログラムの概要

each_sliceメソッドを解説するプログラムでは、整数型の配列を用意し

  • パターン1:ブロックなしの場合
  • パターン2:ブロックありの場合

それぞれで、each_sliceメソッドを使います。
パターン1のブロックなしは、3つごとにグループ化し、中身を表示させます。
パターン2のブロックありは、2つごとにグループ化し、各グループの要素を2倍にして結果を表示させます。

Rubyサンプルプログラム

上記のサンプルプログラムで使っている

  • each_with_indexメソッド
  • mapメソッド

それぞれのメソッドについては、以下の記事をご参考ください。

実行結果

Rubyプログラムを実行するやり方は、以下の記事をご参考ください。

確認で使用するリスト
リスト:[10, 1, 84, 3, 32, 27, 6]

■パターン1:ブロックなしの場合
0番目:[10, 1, 84]
1番目:[3, 32, 27]
2番目:[6]

■パターン2:ブロックありの場合
計算前:[10, 1]
計算後:[20, 2]

計算前:[84, 3]
計算後:[168, 6]

計算前:[32, 27]
計算後:[64, 54]

計算前:[6]
計算後:[12]

指定した通り、配列をグループ化でき、各グループに同じ処理が実施されていることが確認できました!

まとめ:each_sliceメソッドを使ってみよう!

以上がeach_sliceメソッドについての解説でした!

each_sliceメソッドは、配列を簡単にグループ化することができる便利なメソッドなので、ぜひ使ってみてください!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

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