目次(まとめ)

  • ◾️ "select" メソッドを使って、Rubyで定義した配列から条件にあう要素を選択する

  • ◾️ 破壊的メソッドと非破壊的メソッドを使い分ける


Rubyを使ってプログラミングを始めたばかりの初心者です。定義した配列から条件に合う要素だけを選択して取り出したいと思っています。どうやって実現できますか?

Rubyでは "select" メソッドがあり、文字通り、指定した要素を選択するときに使うことができます。

今回の記事では、"select" メソッドの使い方を紹介します。

"select" メソッドを使って、Rubyで定義した配列から条件にあう要素を選択する

例えば、Rubyで以下のような配列を定義したとします。

arr = ["apple", "grape", "orange", "banana", "meron", "banana"]

例えば、この配列 "arr" から、"apple" だけを取り出したいとします。

その場合には、"select" メソッドを使って、以下のように記述します。

p arr.select {|s| s=="apple" }

ここで、"s" には、"arr" の配列の要素が一つずつ入っていき、その要素が "apple" と一致するかどうかを判定していきます。

実行結果は「["apple"]」となります。

破壊的メソッドと非破壊的メソッドを使い分ける

Rubyには、「破壊的メソッド」と「非破壊的メソッド」があります。

破壊的メソッド
そのメソッドを適用した変数/配列の内容そのものが置き換わる

非破壊的メソッド
そのメソッドを適用した変数/配列の内容そのものは変わらない

例えば、以下のように、非破壊的メソッドの "select" を使うと、そのメソッドを適用した配列 "arr" の内容は変わりません。

p arr.select {|s| s=="apple" }
#=> ["apple"]

p arr
#=> ["apple", "grape", "orange", "banana", "meron", "banana"]

一方で、以下のように、破壊的メソッドの "select!"(びっくりマーク付)を使うと、そのメソッドを適用した配列 "arr" の内容が変わります。

p arr.select! {|s| s=="apple" }
#=> ["apple"]

p arr
#=> ["apple"]

今回の記事では、"select" メソッドを使って配列から条件にあう要素を選択する方法を紹介しました。一致するものだけでなく、大きいものや小さいものを不等号を使って選択することも可能です。お試しください。

B!