はじめての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メソッドについて忘れてしまったら、この記事を思い出してくださいね!

現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

LINEで送る
Pocket

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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