こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Rubyで配列から指定した要素を削除することができるdeleteメソッドについて
- deleteメソッドとは
- 実際にdeleteメソッドを使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
目次
前提条件
この記事で使っているRubyのバージョンは、2.6.6です。
Rubyのインストールは、下の記事をご参考ください。
deleteメソッドとは
deleteメソッドとは、配列から指定した要素を削除するメソッドです。
deleteメソッドは使い方が
- パターン1:ブロックが指定されていない場合
- パターン2:ブロックが指定されている場合
の合計2パターンあります。
各パターンについてサンプルを使って解説します。
パターン1:ブロックが指定されていない場合
ブロックが指定されていない場合は、下記のように使います。
上記の例だと、resultには削除された値2が返され、deleteメソッド実行後の配列sampleは[1, 3]となります。
もし削除すると指定された値が配列になかった場合、nilを返し、配列は何も変化がありません。
パターン2:ブロックが指定されている場合
ブロックが指定されている場合は、下記のように使います。
上記の例だと、resultにはブロック内のfalseではなく削除された値2が返され、deleteメソッド実行後の配列sampleは[1, 3]となります。
もし削除すると指定された値が配列になかった場合、ブロック内の処理を実行し結果を返し、配列は何も変化がありません。
では、次の章で実際に使ってみます。
deleteメソッドを解説するプログラムの概要
deleteメソッドを解説するプログラムでは、
- パターン1:ブロックが指定されていない場合
- パターン2:ブロックが指定されている場合
それぞれで
- 指定した値がある場合
- 指定した値がない場合
のケースで、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 |
# パターン1 # パターン1:ブロックが指定されていない場合 puts "■パターン1:ブロックが指定されていない場合(指定した要素がある場合)" numarrayp11 = [3, 1, 2, 3, 4] puts "deleteメソッドを実行する前の配列:#{numarrayp11}" numresultp11 = numarrayp11.delete(3) puts "返り値を確認:#{numresultp11}" puts "deleteメソッドを実行した後の配列:#{numarrayp11}" puts puts "■パターン1:ブロックが指定されていない場合(指定した要素がない場合)" numarrayp12 = [1, 1, 2] puts "deleteメソッドを実行する前の配列:#{numarrayp12}" numresultp12 = numarrayp12.delete(10) puts "返り値を確認:#{numresultp12}" puts "deleteメソッドを実行した後の配列:#{numarrayp12}" puts # パターン2 # パターン2:ブロックが指定されている場合 puts "■パターン2:ブロックが指定されている場合(指定した要素がある場合)" numarray2 = [3, 9, 2, 3, 4, 3] puts "deleteメソッドを実行する前の配列:#{numarray2}" numresult2 = numarray2.delete(3) { "3の要素がなかった" } puts "返り値を確認:#{numresult2}" puts "deleteメソッドを実行した後の配列:#{numarray2}" puts puts "■パターン2:ブロックが指定されている場合(指定した要素がない場合)" numarray3 = [5, 7, 10, 8] puts "deleteメソッドを実行する前の配列:#{numarray3}" numresult3 = numarray2.delete(3) { "3の要素がなかった" } puts "返り値を確認:#{numresult3}" puts "deleteメソッドを実行した後の配列:#{numarray3}" |
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
■パターン1:ブロックが指定されていない場合(指定した要素がある場合)
deleteメソッドを実行する前の配列:[3, 1, 2, 3, 4]
返り値を確認:3
deleteメソッドを実行した後の配列:[1, 2, 4]■パターン1:ブロックが指定されていない場合(指定した要素がない場合)
deleteメソッドを実行する前の配列:[1, 1, 2]
返り値を確認:
deleteメソッドを実行した後の配列:[1, 1, 2]■パターン2:ブロックが指定されている場合(指定した要素がある場合)
deleteメソッドを実行する前の配列:[3, 9, 2, 3, 4, 3]
返り値を確認:3
deleteメソッドを実行した後の配列:[9, 2, 4]■パターン2:ブロックが指定されている場合(指定した要素がない場合)
deleteメソッドを実行する前の配列:[5, 7, 10, 8]
返り値を確認:3の要素がなかった
deleteメソッドを実行した後の配列:[5, 7, 10, 8]
指定した要素のみが配列から削除されていることが確認できました!
まとめ:deleteメソッドを使ってみよう!
以上がdeleteメソッドについての解説でした!
deleteメソッドは、配列から簡単に指定した要素を削除できる便利なメソッドなので、ぜひ使ってみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント