こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、12年目エンジニアです。
この記事では、 Rubyで配列から指定した要素を削除することができるArray.deleteメソッドについて
- Array.deleteメソッドとは
- Array.deleteメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
Array.deleteメソッドとは
Array.deleteメソッドとは、呼び出している配列から指定した要素をすべて削除するメソッドです。
Array.deleteメソッドは使い方が
- パターン1:ブロックが指定されていない場合
- パターン2:ブロックが指定されている場合
の合計2パターンあります。
各パターンについてサンプルを使って解説します。
パターン1:ブロックが指定されていない場合
ブロックが指定されていない場合の使い方サンプルは以下になります。
1 2 |
sample = [1, 2, 3] result = sample.delete(2) |
配列から引数で指定した要素をすべて削除し、削除できた場合は削除した要素の値を返します。
もし引数で指定した値が存在しなければ、nilが返ります。
上記の例だと、resultには削除された値の「2」が返され、Array.deleteメソッド実行後の配列sampleは
1 |
[1, 3] |
となります。
パターン2:ブロックが指定されている場合
ブロックが指定されている場合の使い方サンプルは以下になります。
1 2 3 4 |
sample = [1, 2, 3] result = sample.delete(4) { "hogehoge" } |
配列から引数で指定した要素をすべて削除し、削除できた場合は削除した要素の値を返すまでは同じです。
もし、引数で指定した値が存在しなければ、ブロックで指定した値が返ります。
上記の例だと、配列にArray.deleteメソッドの引数の要素は存在しないためresultには
1 |
hogehoge |
が返り配列sampleは削除実行されないため
1 |
[1, 2, 3] |
のままです。
では、次の章で実際に使ってみます。
Array.deleteメソッドを解説するプログラムの概要
Array.deleteメソッドを解説するプログラムでは、
- パターン1:ブロックが指定されていない場合
- パターン2:ブロックが指定されている場合
をそれぞれ
- 指定した値がある場合
- 指定した値がない場合
のケースで、Array.deleteメソッドを使い実行結果を表示させます。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
puts "■deleteメソッドサンプル" # パターン1:ブロックが指定されていない場合 puts "①パターン1:ブロックが指定されていない" puts "・指定した要素がある場合" num_array1 = [3, 1, 2, 3, 4] puts "実行前:#{num_array1}" num_array_delete1 = num_array1.delete(3) puts "返り値:#{num_array_delete1}" puts "実行後:#{num_array1}" puts puts "・指定した要素がない場合" num_array2 = [1, 1, 2] puts "実行前:#{num_array2}" num_array_delete2 = num_array2.delete(10) puts "返り値:#{num_array_delete2}" puts "実行後:#{num_array2}" puts # パターン2:ブロックが指定されている場合 puts "①パターン2:ブロックが指定されている" puts "・指定した要素がある場合" num_array3 = [3, 9, 2, 3, 4, 3] puts "実行前:#{num_array3}" num_array_delete3 = num_array3.delete(3) { "3の要素がなかった" } puts "返り値:#{num_array_delete3}" puts "実行後:#{num_array3}" puts puts "・指定した要素がない場合" num_array4 = [5, 7, 10, 8] puts "実行前:#{num_array4}" num_array_delete4 = num_array4.delete(3) { "3の要素がなかった" } puts "返り値:#{num_array_delete4}" puts "実行後:#{num_array4}" |
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
■deleteメソッドサンプル ①パターン1:ブロックが指定されていない ・指定した要素がある場合 実行前:[3, 1, 2, 3, 4] 返り値:3 実行後:[1, 2, 4] ・指定した要素がない場合 実行前:[1, 1, 2] 返り値: 実行後:[1, 1, 2] ①パターン2:ブロックが指定されている ・指定した要素がある場合 実行前:[3, 9, 2, 3, 4, 3] 返り値:3 実行後:[9, 2, 4] ・指定した要素がない場合 実行前:[5, 7, 10, 8] 返り値:3の要素がなかった 実行後:[5, 7, 10, 8] |
指定した要素のみが配列からすべて削除されていることが確認できました!
まとめ:Array.deleteメソッドを使ってみよう!
以上がArray.deleteメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント