こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、12年目エンジニアです。
この記事では、 Rubyで配列から指定した条件に一致する要素を抽出することができるArray.selectメソッドについて
- Array.selectメソッドとは
- Array.selectメソッドを使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Rubyのインストールは、下の記事をご参考ください。
Array.selectメソッドとは
Array.selectメソッドとは、呼び出している配列から指定した条件に一致する要素を抽出して、新たな配列を返り値として返すメソッドです。
もし条件に一致した要素がなければ、空の配列を返します。
使い方サンプルは以下です。
1 2 3 4 |
sample = ["aa", "bbb", "cccc"] result = sample.select do |str| str.length > 2 end |
上記のArray.selectメソッドの抽出条件は、配列sampleの要素で文字数が2文字より大きいものとしています。
実行後resultには
1 |
["bbb", "cccc"] |
という配列が返されます。
Array.selectメソッドは、do~endだけではなく
1 2 3 4 |
sample = ["aa", "bbb", "cccc"] result = sample.select { |str| str.length > 2 } |
と{~}でくくることもできます。
では、次の章で実際に使ってみます。
Array.selectメソッドを解説するプログラムの概要
Array.selectメソッドを解説するプログラムでは指定する抽出条件に
- 要素が存在する場合
- 要素が存在しない場合
の2パターンでselectメソッドを使い、結果を表示させます。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
puts "■selectメソッドサンプル" puts puts "パターン1:要素が存在する場合" num_array = [6, 14, 9, 2, 11] puts "抽出する配列:#{num_array}" result_odd_result = num_array.select do |number| number % 2 == 1 end puts "奇数を抽出:#{result_odd_result}" puts puts "パターン2:要素が存在しない場合" str_array = ["aa", "bbb", "cccc"] puts "抽出する配列:#{str_array}" result_length_result = str_array.select { |str| str.length > 10 } puts "10文字より長い文字を抽出:#{result_length_result}" |
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 |
■selectメソッドサンプル パターン1:要素が存在する場合 抽出する配列:[6, 14, 9, 2, 11] 奇数を抽出:[9, 11] パターン2:要素が存在しない場合 抽出する配列:["aa", "bbb", "cccc"] 10文字より長い文字を抽出:[] |
指定した条件の通り、要素が抽出できていることが確認できました!
まとめ:Array.selectメソッドを使ってみよう!
以上がArray.selectメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント