LoginSignup
7
7

More than 3 years have passed since last update.

【Ruby】selectメソッドとinclude?メソッドで検索機能を実装する!

Last updated at Posted at 2019-11-11

はじめに

プログラミング学習中に出会った、
selectメソッドとinclude?メソッドについて簡単にまとめました。
そしてこの2つのメソッドを使って簡単な検索機能の実装します。

selectメソッド

配列やハッシュなどから、ある条件にあった要素だけを取り出します。

例1 色が入ったリストからある条件にあう要素のみ取り出す


list = [ "blue", "red", "yellow" ]

color = list.select do |x|
  x == "red"
end

puts color
# redが書き出される 

例2 do-endを使わずに書く

list = [ "blue", "red", "yellow" ]

color = list.select{|x| x == "red" }

puts color
# redが書き出される 

string#include?メソッド

文字列の中に指定した文字列(引数で指定)が含まれているか確認できます。
含まれていればtrueを、なければfalseを返します。

例 文字列の中に引数に指定した文字列が含まれているか確認


color = "red"

puts color.include?("e")
# 文字列"red"の中に"e"が含まれているため、trueが返される

2つのメソッドを利用して検索機能を持った簡易アプリを作る


list = [ "blue", "red", "yellow" ]

puts "blue"
puts "red"
puts "yellow"
puts "3色のうち好きな色を入力してください"

index = gets.chomp
# ユーザーの入力

color = list.select{ |x| x.include?(index)}
# index(入力された文字列)を含む要素を取り出して変数に入れる。

puts color
# 入力した文字列を含む色が書き出される。
# 「e」と入力すれば「blue」「red」「yellow」全て書き出される

補足 Array#include?メソッド

上記で紹介したinclude?メソッドは文字列の中に要素が含まれるか確認するメソッドでした。
これは、文字列に関するオブジェクトを提供するStringクラスに定義されているメソッドです。

include?メソッドは、Arrayクラスにも定義されています。
こちらは配列の中に引数にて指定する要素が含まれるか確認できるメソッドです。

例 配列の中に引数に指定した要素が含まれているか確認


list = [ "blue", "red", "yellow" ]

color = list.include?("red")

puts color
# 配列の中に"red"が含まれるため、trueが返される

まとめ

selectメソッドは条件にあった要素を取り出し、
include?メソッドは、指定した文字列が対象に含まれるかを確認します。
これにユーザーの入力機能を組み合わせることで検索機能を実装できました。

7
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7