スライドショー

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

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

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

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


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

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

rejectとは

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

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

・rejectの書き方(配列)

配列オブジェクト.reject {|変数| ブロック}

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

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

ハッシュオブジェクト.reject {|キー, 値| ブロック}

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

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

範囲オブジェクト.reject {|変数| ブロック}

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

rejectの使い方

配列

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

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

# 配列を定義
array = [1, 2, 3, 4, 5, 6, 7, 8]

# 2で割り切れない要素を取得
p array.reject {|item| item % 2 == 0}

実行結果:

[1, 3, 5, 7]

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

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

Hash(ハッシュ)

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

# ハッシュを定義
fruits = {"apple" => 100, "orange" => 120, "meloln" => 700, "banana" => 80}

# 値が100以下の要素を取得
p fruits.reject {|key, value| value > 100}

実行結果:

{"apple"=>100, "banana"=>80}

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

範囲オブジェクト

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

# 範囲オブジェクトを指定
range = Range.new(1, 10)

# 2で割り切れない要素を取得
p range.reject {|item| item % 2 == 0}

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

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

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

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

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

# 配列を定義
array = [1, 2, 3, 4, 5, 6, 7, 8]

# 2で割り切れる要素の取得
p array.select {|item| item % 2 == 0}

実行結果:

[2, 4, 6, 8]

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

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

と覚えておきましょう。

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

まとめ

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

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

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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