【Ruby】配列を扱う際の便利メソッドをまとめてご紹介します!

  • 2020年4月5日
  • 2021年10月16日
  • Ruby

今回は、Ruby初心者の方々に向けて、配列(Array)を扱う際に最低限知っておくべきメソッドをご紹介させていただきます。

Webアプリケーションを開発する中で、配列は必ずと言ってよいほど使用することとなるオブジェクトになります。

そのため、今回ご紹介するメソッドを知っているだけで、コードをかなり簡素化することができ、開発スピードもグンと向上すること間違いないです。

初心者の方向けに分かりやすく簡潔にご説明していきますので、ぜひ最後まで読んでみてくださいね。

なお、用途別にもまとめておりますので、ご自身が知りたいものに合わせてご覧になってください。

>> 配列を初期化する方法
>> 配列に要素を追加する方法
>> 配列から要素を削除する方法
>> 配列の要素を検索する方法
>> 配列のサイズを調べる方法


レバテックフリーランス … 業界最大級の案件数業界トップクラスの高単価報酬を誇る最大手のサービスです。実績豊富なコーディネーターが丁寧な対応をしてくれるため、案件の無理な提案はありません。フリーランスで生きていくためにはまず登録しておきましょう。
MidWorks … フリーランス賠償責任保障生命保険の折半など、フリーランスでありながらも正社員並みの保障を受けられるのが特徴です。また、経験豊富なキャリアコンサルタントによる手厚いサポートも受けられるため、安定したフリーランス生活を送りたい方には特におすすめのサービスです。
ポテパンフリーランス … IT業界・技術に詳しいコンサルタントが担当してくれるため、こちらの要望をきちんと理解した上で案件を紹介してくれます。また、案件情報のみならず、フリーランスのイロハについても教えてくれるため、フリーランスとして初めて活動される方には特におすすめのサービスです。

レバテックキャリア … ITエンジニアが利用したい転職エージェントNo.1にも選ばれており、年収600万円以上のハイクラス求人を5,000件以上も保有しています。エンジニアが転職を考えた時にまず初めに登録しておくべきサービスです。
Tech Stars Agent … Tech Stars Agentでは、担当エージェントが全員エンジニア出身のため、スキルやキャリアを見据えたきめ細かな転職支援が受けられます。運営元の株式会社Branding Engineerは、独立支援サービス「MidWorks」も展開しているため、独立を視野に入れたサポートも受けられます
転職ドラフト … 年収UP率93.8%/平均年収UP額126万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け 転職サービスです。毎月1回開催され、厳選された優良IT/Web系企業約150社からダイレクトスカウトを受け取ることができます。年収アップを目指す方は登録必須です。

目次

Rubyの配列とは

配列とは、任意のオブジェクトを複数まとめた上で、それらを同じように取り扱える/それらに対して同じ処理を加えられるようにしたオブジェクトです。

詳細については以下の記事にて詳しくご説明していますので、「まだ配列のイメージがイマイチ掴めていない…」という方はまずはこちらの記事からご覧くださいね。

おすすめ記事

今回は、Rubyの配列(Array)の基本的な使い方についてご紹介させていただきます。 Webアプリケーションを開発する中で、配列は必ずと言ってよいほど使用することとなるオブジェクトになります。 そのため、今回ご紹介する、基本[…]

プログラミングイメージ

Rubyの配列を扱う際に知っておくべきメソッド一覧

今回ご紹介しようと思っているメソッドは、以下の15種類になります。

  • 1. each
  • 2. map
  • 3. select
  • 4. reject
  • 5. sort
  • 6. sample
  • 7. reverse
  • 8. shuffle
  • 9. join
  • 10. length / size
  • 11. empty?
  • 12. include?
  • 13. any?
  • 14. all?
  • 15. first / last

それぞれの主な用途や使い方、そして具体例を交えながらご説明させていただきますね。

Rubyの配列を扱う際に知っておくべきメソッドその1 eachメソッド

まずは「each」メソッドをご紹介します。

このeachメソッドですが、配列を扱う際に最も使用されているメソッドと言っても良いほどポピュラーなメソッドです。

用途としては、配列内の要素に対して繰り返し処理を実施することです。

具体的には以下のように使用します。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.each do |number|
irb(main):003:1*   puts number * 2
irb(main):004:0> end
2
4
6
8
10

上記の例では、配列の中に入っている数字に対して、「2倍した上での表示する」という処理を実施しています(※”puts” というのは、後続のオブジェクトを表示するメソッドです)。

ここでは”number” という変数に配列内の要素を代入し、その変数に対して処理(”* 2″)を加えているということになります。

そのため、“puts number * 2” という1行によって、以下の5行の処理が行われているということです。

puts 1 * 2
puts 2 * 2
puts 3 * 2
puts 4 * 2
puts 5 * 2

このeachメソッドは実際の開発の中でも頻出するメソッドですので、是非とも覚えておいてくださいね。

Rubyの配列を扱う際に知っておくべきメソッドその2 mapメソッド

続いては、「map」メソッドをご紹介します。

このmapメソッドも基本的な使い方はeachメソッドと同じで、配列内の要素に対して繰り返し処理を実施します。

相違点としては、eachメソッドの戻り値は「元の配列」であるのに対して、mapメソッドの戻り値は「処理を加えた後の配列」であるということです。

具体例を交えながら比較していきましょう。

irb(main):01:0> array = [1, 2, 3, 4, 5]
irb(main):02:1* array.map do |number|
irb(main):03:1*   number * 2
irb(main):04:0> end
=> [2, 4, 6, 8, 10]

このように、mapメソッドを使った場合には、処理を加えた後の配列である “[2, 4, 6, 8, 10]” が返されているのがお分かりになるかと思います。

同じ処理をeachメソッドでやってみると、以下のようになります。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.each do |number|
irb(main):003:1*   puts number * 2
irb(main):004:0> end
=> [1, 2, 3, 4, 5]

元の配列が返って来ているのがお分かりになるかと思います。

このように特定の処理を加えた後の配列が欲しい場合には、mapメソッドを使っていきましょう。


傍楽たろう
なお、mapメソッドについては以下の記事でも詳しく解説していますので、こちらもぜひご覧くださいね。
おすすめ記事

みなさんこんにちは! 今回は、 悩める人 ・Rubyのmap()メソッドの使い方をマスターしたい・collect()メソッドやeach()メソッドとどう使い分けたらいいの? というお悩みを解決する記事にな[…]

【Ruby】mapメソッドをマスター | 他のメソッドとの違いも解説

Rubyの配列を扱う際に知っておくべきメソッドその3 selectメソッド

続いては、「select」メソッドをご紹介します。

selectメソッドを使うと、設定した条件式に当てはまる要素のみ抽出した配列を作ることができます。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.select do |number|
irb(main):003:1*   puts number >= 3
irb(main):004:0> end
=> [3, 4, 5]

ここでは、元の配列の中から、3以上のものを取り出しています。

「あれ、これってmapメソッドでもできるんじゃない?」と思われた方もいらっしゃるかと思いますが、mapメソッドを使用すると以下のような結果が返って来ます。

irb(main):01:0> array = [1, 2, 3, 4, 5]
irb(main):02:1* array.map do |number|
irb(main):03:1*   number >= 3
irb(main):04:0> end
=> [false, false, true, true, true]

これは、selectメソッドが「number >= 3に当てはまる数字」を返しているのに対して、mapメソッドは「それぞれの数字に対してnumber >= 3を当てはめている」ため、Boolean値(真偽)を返して来ているのですね。

Rubyの配列を扱う際に知っておくべきメソッドその4 rejectメソッド

続いては、「reject」メソッドをご紹介します。

rejectメソッドはselectメソッドと反対で、条件式に合わない要素を抽出した配列を作ることができます。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.reject do |number|
irb(main):003:1*   puts number >= 3
irb(main):004:0> end
=> [1, 2]

このように、「3以上ではない」数字を返して来ているのがお分かりいただけるかと思います。

select / reject を日本語に直すと、それぞれ”選択する” と “拒否する” になりますので、直感的に使い分けられますよね。

Rubyの配列を扱う際に知っておくべきメソッドその5 sortメソッド

続いては、「sort」メソッドをご紹介します。

sortメソッドは、その名の通り、配列内の要素を並び替えたい時に使用するメソッドです。

irb(main):01:0> array = [1, 4, 3, 5, 2]
irb(main):02:0> array.sort
=> [1, 2, 3, 4, 5]

文字列に対してsortメソッドを使用すると、五十音順アルファベット順で並び替えされます。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.sort
=> ["Go", "Javascript", "PHP", "Rails", "Ruby"]

また、それ以外の条件(文字数 など)で並び替えたい時には、sort_byメソッドを使用することで実現できます。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:1* array.sort_by do |name|
irb(main):03:1*   name.size  // sizeは文字数をカウントするメソッドです
irb(main):04:0> end
=> ["Go", "PHP", "Ruby", "Rails", "Javascript"]

Rubyの配列を扱う際に知っておくべきメソッドその6 sampleメソッド

続いては、「sample」メソッドをご紹介します。

sampleメソッドは、配列の中からランダムで要素を取り出してくれます

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.sample
=> "PHP"
irb(main):03:0> array.sample
=> "PHP"
irb(main):04:0> array.sample
=> "Javascript"
irb(main):05:0> array.sample
=> "Go"
irb(main):06:0> array.sample
=> "Ruby"

普段はあまり使用することは多くはないですが、くじ引き機能などを作る際には活躍してくれることでしょう。

Rubyの配列を扱う際に知っておくべきメソッドその7 reverseメソッド

続いては、「reverse」メソッドをご紹介します。

reverseメソッドは、その名の通り、配列の要素を反転してくれます

irb(main):01:0> array = [1, 2, 3, 4, 5]
irb(main):02:0> array.reverse
=> [5, 4, 3, 2, 1]

Rubyの配列を扱う際に知っておくべきメソッドその8 shuffleメソッド

続いては、「shuffle」メソッドをご紹介します。

shuffleメソッドは、その名の通り、配列内の要素をシャッフルしてくれます

irb(main):01:0> array = [1, 2, 3, 4, 5]
irb(main):02:0> array.shuffle
=> [1, 4, 5, 3, 2]
irb(main):03:0> array.shuffle
=> [5, 3, 1, 2, 4]
irb(main):04:0> array.shuffle
=> [3, 5, 2, 1, 4]

Rubyの配列を扱う際に知っておくべきメソッドその9 joinメソッド

続いては、「join」メソッドをご紹介します。

joinメソッドは、配列内の要素を結合させて、一つの文字列に変換してくれます。

具体例を交えながらその使い方を見ていきましょう。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.join
=> "RubyRailsJavascriptGoPHP"
irb(main):04:0> array.join(", ")
=> "Ruby, Rails, Javascript, Go, PHP"
irb(main):05:0> array.join("と")
=> "RubyとRailsとJavascriptとGoとPHP"

上記を見ていただくとお分かりいただける通り、ただjoinをしただけだとただ単に配列内の要素をつなげただけになりますが、引数に記号や文字を与えてあげるとその引数自体を区切りとして文字列を作成してくれます

Rubyの配列を扱う際に知っておくべきメソッドその10 length / sizeメソッド

続いては、「length / size」メソッドをご紹介します。

lengthメソッドは、その名の通り、配列の要素の数を返してくれます

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.length
=> 5

sizeメソッドも同じ使い方で大丈夫です。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.size
=> 5

両者はエイリアスの関係で中身は全く同じ実装になっていますので、使いやすい方を使っていく形で問題ありません(私的にはsizeの方がしっくりきます)。

詳しくは、以下の記事にて解説していますので、ぜひこちらもご覧ください。

おすすめ記事

みなさんこんにちは! 今回の記事は、 悩みを抱えた人 ・Rubyで配列のサイズを取得したい・いくつかメソッドがあるけど、どれを使えばいいの?・length/size/countメソッドの違いが知りたい というお悩[…]

アルファベット

Rubyの配列を扱う際に知っておくべきメソッドその11 empty?メソッド

続いては、「empty?」メソッドをご紹介します。

empty?メソッドは、その名の通り、配列の要素数を確認して、空であればtrueを要素が一つでも存在していればfalseを返します。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.empty?
=> false
irb(main):03:0> array = []
irb(main):04:0> array.empty?
=> true

Rubyの配列を扱う際に知っておくべきメソッドその12 include?メソッド

続いては、「include?」メソッドをご紹介します。

include?メソッドは、配列内に特定の要素が含まれているかどうかを調べる時に使用します。

具体例を見ながら使い方を確認していきましょう。

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.include?("Ruby")
=> true
irb(main):03:0> array.include?("HTML")
=> false

このように、引数に指定したオブジェクトが含まれているかを判定し、戻り値はBoolean値(true / false)になります。

Rubyの配列を扱う際に知っておくべきメソッドその13 any?メソッド

続いては、「any?」メソッドをご紹介します。

any?メソッドは、特定の条件を満たすオブジェクトが配列内に含まれているかどうかを判定します。

具体例を見ながら使い方を確認していきましょう。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.any? do |number|
irb(main):003:1*   puts number == 2
irb(main):004:0> end
=> true

irb(main):005:1* array.any? do |number|
irb(main):006:1*   puts number >= 6
irb(main):007:0> end
=> false

上記のうち、最初の例では配列内に2が存在しているためtrueが返ってきており、次の例では6以上の数字が存在しないためfalseが返されています。

Rubyの配列を扱う際に知っておくべきメソッドその14 all?メソッド

続いては、「all?」メソッドをご紹介します。

all?メソッドは、配列内の要素が全て特定の条件を満たすかどうかを判定します。

irb(main):001:0> array = [1, 2, 3, 4, 5]
irb(main):002:1* array.all? do |number|
irb(main):003:1*   puts number >= 0
irb(main):004:0> end
=> true

irb(main):005:1* array.all? do |number|
irb(main):006:1*   puts number >= 3
irb(main):007:0> end
=> false

上記のうち、最初の例では配列内の数字が全て0以上であるためtrueが返ってきており、次の例では、3以上でない数字も配列内に存在しているためfalseが返されています。

Rubyの配列を扱う際に知っておくべきメソッドその15 first / lastメソッド

最後は、「first / last」メソッドをご紹介します。

最後にはなりますが、これまでご紹介してきたメソッドのうち、最も簡単かつ直感的に使用できるメソッドになります。

皆さんお分かりの通りだとは思いますが、それぞれ配列の最初/最後の要素を取り出してくれます

irb(main):01:0> array = ["Ruby", "Rails", "Javascript", "Go", "PHP"]
irb(main):02:0> array.first
=> "Ruby"
irb(main):03:0> array.last
=> "PHP"

お仕事の途中ですが、少し一休みして、転職独立について考えてみませんか🙌?

現役エンジニアが選ぶおすすめの転職エージェント11選【成功談・失敗談もあります】

レバテックフリーランスの評判ってどう?【現役エンジニアが徹底解説します】

MidWorks(ミッドワークス)の評判ってどう?【現役エンジニアが徹底解説します】

日々の業務に追われて自分を見失わないよう、
定期的にキャリアを振り返るようにしておきましょう🤲

最後に

さて、ここまで、Rubyの配列扱う際の知っておくべきメソッドについてご説明してきましたがいかがでしたか?

今回ご紹介したものはいずれも基本的なメソッドであり、実際にはこれ以上に便利なメソッドがまだまだ存在しています

少なくとも今回ご紹介したメソッドたちを使いこなせるようになれば、開発スピードも確実に向上しますので、まずはこれらのメソッドを使いこなせるようになりましょう!

また、配列の便利なメソッドを用途別にもまとめてありますので、ぜひこちらの記事もご覧になってください。

あわせて読みたい

>> 配列を初期化する方法
>> 配列に要素を追加する方法
>> 配列から要素を削除する方法
>> 配列の要素を検索する方法
>> 配列の要素の数を調べる方法

このブログを通じて少しでも「傍(はた)を楽(らく)にする」ことができていれば嬉しく思います。

最後まで読んで頂きありがとうございました。