{category}

Ruby - イテレーションとEnumerator

find

ファインド(制御構造と繰り返し

意味 条件に合う最初の要素を探す


findとは?

findメソッドは、配列やハッシュなどの集合から、指定した条件に最初に合う要素を1つだけ見つけて返すメソッドです。条件はブロックで指定し、ブロックが真を返す最初の要素が返されます。

findの具体的な使い方

条件に合う最初の要素を探す

numbers = [1, 3, 5, 7, 8, 10, 12]

first_even = numbers.find { |num| num.even? }

puts "最初の偶数: #{first_even}"

👇出力結果

最初の偶数: 8

数値の配列から最初の偶数を見つけます。even?メソッドを使用して偶数かどうかをチェックし、条件に合う最初の要素を返します。

ハッシュの配列から条件に合う要素を探す

users = [
  { name: '田中', age: 28 },
  { name: '鈴木', age: 32 },
  { name: '佐藤', age: 41 },
  { name: '高橋', age: 36 }
]

user = users.find { |u| u[:age] > 35 }

if user
  puts "35歳より上の最初のユーザー: #{user[:name]}(#{user[:age]}歳)"
else
  puts "条件に合うユーザーが見つかりません"
end

👇出力結果

35歳より上の最初のユーザー: 佐藤(41歳)

ハッシュの配列から特定の条件(35歳より上)に合う最初の要素を探します。見つかった場合はその要素の情報を、見つからない場合はその旨を表示します。

文字列の配列から特定の文字で始まる要素を探す

fruits = ['りんご', 'バナナ', 'オレンジ', 'ぶどう', 'メロン']

target = fruits.find { |fruit| fruit.start_with?('ば') }

if target
  puts "'ば'で始まる最初の果物: #{target}"
else
  puts "'ば'で始まる果物は見つかりません"
end

👇出力結果

'ば'で始まる最初の果物: バナナ

文字列の配列から特定の文字(この場合は'ば')で始まる最初の要素を探します。start_with?メソッドを使用して条件をチェックします。日本語の文字列を扱う例を示しています。

findに関するよくある質問

Q. findとselectの違いは?
A. findは条件に合う最初の要素のみを返しますが、selectは条件に合う全ての要素を配列で返します。findは一致する要素を見つけたらすぐに処理を終了しますが、selectは全ての要素を確認します。
Q. 条件に合う要素がない場合は?
A. 条件に合う要素が見つからない場合、findはnilを返します。これに対処するには、find_byメソッドを使用するか、nilチェックを行うことをお勧めします。
Q. findで複数の条件を指定できる?
A. はい、ブロック内で複数の条件を組み合わせることができます。例えば、people.find { |p| p[:age] >= 30 && p[:name].start_with?('A') } のようにして、30歳以上でAで始まる名前の人を探すことができます。

findが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのfindやthen、one?、reduce、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

then

条件式の後の処理

種類: 条件分岐

one?

条件を満たす要素がちょうど1つか確認

種類: イテレーションとEnumerator

reduce

要素を畳み込んで1つの値に

種類: イテレーションとEnumerator

rescue

例外の捕捉と処理

種類: 例外の基本

kind_of?

is_a?のエイリアス

種類: 継承