AIブログ Ruby

【Ruby】配列の要素を削除するメソッド14選! delete、delete_at、delete_if、reject、reject!、shift、pop、clear、slice!、uniq!、compact!、drop、keep_ifメソッドを解説します。

この記事は90%~100%ChatGPTで作られています。

作り方はこちらをクリック

このブログではAffinger5を使用しています。

ブログテーマが気に入った方はコチラをクリック

Ruby配列の要素削除メソッド

Rubyには配列の要素を削除するためのいくつかのメソッドが用意されています。ここでは、そのうちのいくつかを取り上げ、その使い方と特性について説明します。

例1: deleteメソッド

deleteメソッドは配列から指定した値を削除します。

 出力結果
[1, 3, 1] 
サルモリ
deleteメソッドを使えば、指定した値を配列から簡単に削除できるんだね!

Rubyをさらに学びたい方へ

Rubyを理解して頂くために参考書を執筆致しました!

Rubyの配列、イテレータ、ブロックパラメータなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています。

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

RubyでChatGPTAPIを使ってブログ作成を自動化しませんか?

例2: delete_atメソッド

delete_atメソッドは、指定したインデックスの要素を削除します。

 出力結果
["a", "b", "d", "e"] 
サルモリ
delete_atメソッドは、インデックスを指定して要素を削除するんだね!

例3: delete_ifメソッド

delete_ifメソッドはブロックを利用して、ブロックの評価結果が真となる要素を全て削除します。

 出力結果
[1, 3, 5] 
サルモリ
delete_ifメソッドは条件に合う要素を全て削除するんだね。ブロックを使って条件を指定できるのが便利だね!

例4: reject!メソッド

reject!メソッドもdelete_ifメソッドと同様に、ブロックの評価結果が真となる要素を全て削除します。ただし、要素が一つも削除されなかった場合、delete_ifメソッドは元の配列を返すのに対し、reject!メソッドはnilを返します。

 出力結果
[1, 2, 3, 4, 5] 
サルモリ
ん?reject!メソッドは要素が削除されなかった時にnilを返すんだね。delete_ifメソッドとの違いを覚えておこう!

例5: shiftメソッド

shiftメソッドは配列の先頭から指定した数の要素を削除します。引数を省略した場合、先頭の1要素を削除します。

 出力結果
[3, 4, 5] 
サルモリ
shiftメソッドは配列の先頭から要素を削除できるんだね。引数で削除する要素数を指定できるのも便利だね!

例6: popメソッド

popメソッドは配列の末尾から指定した数の要素を削除します。引数を省略した場合、末尾の1要素を削除します。

 出力結果
[1, 2, 3] 
サルモリ
popメソッドは配列の末尾から要素を削除できるんだね。shiftメソッドとは逆の動きをするんだね!

例7: clearメソッド

clearメソッドは配列の全ての要素を削除します。

 出力結果
[] 
サルモリ
clearメソッドは配列を空にするんだね。全ての要素を一気に削除することができるんだね!

例8: slice!メソッド

slice!メソッドは指定したインデックスの要素を削除し、その要素を返します。インデックスだけでなく範囲を指定することも可能です。

 出力結果
Removed elements: [2, 3, 4] Array after removal: [1, 5] 
サルモリ
slice!メソッドは指定した位置の要素を削除しつつ、削除した要素を返すんだね。範囲を指定して複数の要素を一度に削除できるのも便利だね!

例9: uniq!メソッド

uniq!メソッドは配列内の重複する要素を削除します。ただし、このメソッドは元の配列を変更するので注意が必要です。

 出力結果
[1, 2, 3, 4] 
サルモリ
uniq!メソッドは重複する要素を削除するんだね。ただ、元の配列を変更するから注意が必要なんだね!

例10: compact!メソッド

compact!メソッドは配列からnil要素を全て削除します。

 出力結果
[1, 2, 3] 
サルモリ
compact!メソッドは配列からnilを全て削除するんだね。これで配列内のnilを簡単に取り除けるね!

ポイント

Rubyでは配列の要素を削除するための様々なメソッドが用意されています。それぞれのメソッドがどのように動作するかを理解し、適切に使用することが重要です。また、一部のメソッドは元の配列を変更するため、その点も注意が必要です。

例11: dropメソッド

dropメソッドは指定した数だけ配列の先頭から要素を削除した新しい配列を返します。ただし、元の配列は変更されません。

 出力結果
New array after drop: [3, 4, 5] Original array: [1, 2, 3, 4, 5] 
サルモリ
dropメソッドは新しい配列を返しつつ、元の配列は変更しないんだね。元の配列を保持しつつ処理を行いたい時に使えそうだね!

例12: keep_ifメソッド

keep_ifメソッドはブロックの条件に合う要素だけを残し、それ以外の要素を削除します。

 出力結果
[4, 5] 
サルモリ
keep_ifメソッドは指定した条件に合う要素だけを残すんだね。delete_ifメソッドとは逆の動きをするんだね!

例13: delete_ifとreject!の違い

delete_ifメソッドとreject!メソッドはよく似た動作をしますが、異なる点もあります。それは、要素が削除されなかった場合の戻り値です。delete_ifは常に元の配列を返しますが、reject!は要素が削除されなかった場合にnilを返します。

 出力結果
delete_if: [1, 2, 3, 4, 5] reject!: nil 
サルモリ
delete_ifとreject!はほぼ同じ動きをするけど、要素が削除されなかった場合の戻り値が違うんだね。要素が削除されなかった場合にnilが返るのはreject!だけだね!

例14: rejectメソッド

rejectメソッドはブロックの条件に合わない要素だけを残した新しい配列を返します。元の配列は変更されません。

 出力結果
New array after reject: [1, 2, 3] Original array: [1, 2, 3, 4, 5] 
サルモリ
rejectメソッドは新しい配列を返しつつ、元の配列は変更しないんだね。これで条件に合わない要素だけを残すことができるね!

まとめ

[/st-kaiwa3]

ポイント

Rubyの配列操作メソッドは非常に豊富です。各メソッドの動作を理解し、適切に使用することで、効率的なプログラミングが可能になります。また、メソッドによっては元の配列を変更するものと、新しい配列を返すものがあるため、使用する際にはその点を考慮することが重要です。

最後まで読んで頂き、ありがとうございました。

サルモリ
最後まで読んでくれてありがとう!!

Rubyをさらに学びたい方へ

Rubyを理解して頂くために参考書を執筆致しました!

Rubyの配列、イテレータ、ブロックパラメータなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています。

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

RubyでChatGPTAPIを使ってブログ作成を自動化しませんか?

この記事は90%~100%ChatGPTで作られています。

作り方はこちらをクリック

-AIブログ, Ruby

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock