Help us understand the problem. What is going on with this article?

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

はじめに

プログラミング学習中に出会った、
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?メソッドは、指定した文字列が対象に含まれるかを確認します。
これにユーザーの入力機能を組み合わせることで検索機能を実装できました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away