はじめてのRuby!rejectメソッドで配列の特定の要素を取得

配列にはさまざまなメソッドが用意されていますが、rejectメソッドを使用すると条件が一致しない要素のみを取得することができます。

rejectメソッドを使用することで「配列の値を条件によって振り分けたい」場合に便利です。

ここではそんなrejectメソッドについて、以下の内容を解説していきます。


・rejectメソッドとは
・rejectメソッドの使い方(配列)
・rejectメソッドの使い方(ハッシュ)
・rejectメソッドの使い方(範囲オブジェクト)
・selectメソッドの使い方

rejectメソッドについて網羅的に解説していますので、ぜひ参考にしてください!

rejectとは

rejectは配列やハッシュに対して要素の数だけブロックの処理を実行し、条件が偽の要素だけを集めて取得するメソッドです。

rejectメソッドを使えば、for文やif文などを使わずに配列やハッシュの各要素を簡単にチェックすることができます。

・rejectの書き方(配列)

ブロックの変数には配列の要素が順番に格納されます。

・rejectの書き方(ハッシュ)

ブロックの変数にはハッシュのキーと値のセットが順番に格納されます。

・rejectの書き方(範囲オブジェクト)

配列同様ブロックの変数には要素が順番に格納されます。

rejectの使い方

配列

まずは配列の要素に対してrejectメソッドを使用して、ブロックの条件に一致しない要素を取得してみましょう。

以下のサンプルをご覧ください

実行結果:

このサンプルでは数値が格納された配列に対して、ブロックの処理で2で割り切れない要素のみを取得しています。

このようにrejectメソッドを使用すれば、簡単に要素のチェックを行えることがわかりますね!

Hash(ハッシュ)

次にHash(ハッシュ)でrejectメソッドを使う方法を見ていきましょう。

実行結果:

このサンプルではハッシュの値が100以上かチェックして、結果が偽となる要素のみを取得しています。

範囲オブジェクト

範囲オブジェクトも配列やハッシュ同様に、rejectメソッドによるブロック処理で要素を取得することができます。

このサンプルでは値が1から10までの範囲オブジェクトを作成し、ブロックの処理で2で割り切れない要素のみを取得しています。

範囲オブジェクトについては、以下の記事で詳しく解説していますので気になる方は参考にしてください!

条件に一致した要素を取得する(select)

rejectメソッドによく似たメソッドとしてselectがあります。

selectメソッドは条件に一致した要素(真の場合)を取得します。

実行結果:

このように条件に一致した要素を取得できました。

  • selectメソッドはブロックの条件に一致した要素を取得する
  • rejectメソッドはブロックの条件に一致しない要素を取得する

と覚えておきましょう。

selectメソッドについては以下の記事で詳しく解説しています。

まとめ

ここでは、ブロックの条件が偽の場合の要素を取得するrejectメソッドについて、以下の内容で解説しました。

  • rejectメソッドとは
  • rejectメソッドの使い方(配列)
  • rejectメソッドの使い方(ハッシュ)
  • rejectメソッドの使い方(範囲オブジェクト)
  • selectメソッドの使い方

rejectメソッドやselectメソッドは繰り返し文やif文を使って、要素を1つずつチェックする手間が省けますので非常に便利であることがわかりましたね!

もし、rejectメソッドについて忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説