配列の使い方

【Ruby rails】配列の要素を削除するメソッド6選! delete、delete_at、delete_if、reject、reject!、clearメソッドを解説します。

はじめに: Rubyの配列操作メソッドの基本

Rubyには配列を操作するためのさまざまなメソッドが用意されています。

今回取り上げる「delete、delete_at、delete_if、reject、reject!、clear」は、配列から特定の要素を削除する際に非常に便利です。

それぞれのメソッドの特徴を理解し、適切な場面で使い分けることが重要です。

deleteメソッド

deleteメソッドは、配列から指定した値を持つ要素をすべて削除します。例えば、以下のように使用します。

ソースコード例: deleteメソッド



このケースでは、配列から「2」の値を持つ全ての要素が削除されます。

 出力結果
1
3
4
3
1
サルモリ
「deleteメソッドって便利だね!指定した値を持つ要素を全部消せるんだ!」
Ruby言語のブロック、イテレータを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版

delete_atメソッド

delete_atメソッドは、指定したインデックスにある要素を削除します。例えば、次のように使います。

ソースコード例: delete_atメソッド



この場合、インデックス2(3番目の要素)が削除されます。

 出力結果
1
2
4
5
サルモリ
「delete_atは特定の場所の要素をピンポイントで消せるんだね!」

これで、deleteとdelete_atメソッドの基本を説明しました。次は、delete_if、reject、reject!、clearメソッドについて詳しく見ていきましょう。

delete_ifメソッド

delete_ifメソッドは、ブロックで与えられた条件に合致する要素を全て削除します。例えば、以下のように使用することができます。

ソースコード例: delete_ifメソッド



このケースでは、5より大きい数値を持つ要素が配列から削除されます。

 出力結果
1
2
3
4
5
サルモリ
「delete_ifは条件に合うものを一気に消せるから、すごく便利だね!」

rejectメソッドとreject!メソッド

rejectメソッドもdelete_ifと同様に条件に合致する要素を削除しますが、元の配列は変更せず、新しい配列を返します。reject!メソッドは元の配列を変更します。例を見てみましょう。

ソースコード例: rejectメソッド



このコードでは、奇数の要素が新しい配列から削除されます。

 出力結果
Original: 1 2 3 4 5
New: 2 4
サルモリ
「rejectは元の配列を変えずに、条件に合わない要素だけで新しい配列を作れるんだね!」

次に、reject!メソッドの例を見てみましょう。

ソースコード例: reject!メソッド



この場合、元の配列から奇数の要素が削除されます。

 出力結果
2
4
サルモリ
「reject!は元の配列を直接変更するんだ。注意が必要だね!」

delete_ifとreject!の違い

delete_ifメソッドとreject!メソッドはよく似た動作をしますが、異なる点もあります。

それは、要素が削除されなかった場合の戻り値です。delete_ifは常に元の配列を返しますが、reject!は要素が削除されなかった場合にnilを返します。

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

clearメソッド

clearメソッドは配列の全ての要素を削除し、空の配列を返します。非常にシンプルですが、使いどころに注意が必要です。例を見てみましょう。

ソースコード例: clearメソッド



このコードを実行すると、配列は空になります。

 出力結果
サルモリ
「clearメソッドは配列を完全に空にするんだ。気をつけて使おう!」

まとめ: Rubyの配列操作メソッド「delete、delete_at、delete_if、reject、reject!、clear」の具体的な活用

本記事では、Rubyにおける重要な配列操作メソッド「delete、delete_at、delete_if、reject、reject!、clear」について詳しく解説しました。これらのメソッドを理解し、適切に使いこなすことで、Rubyプログラミングにおける配列操作が格段に効率的かつ効果的になります。

  • deleteメソッド: 指定した値を持つ全ての要素を配列から削除します。配列内の特定の値を一括で削除したい場合に便利です。
  • delete_atメソッド: 指定したインデックスの要素を削除します。配列の特定の位置にある要素を取り除く際に使用します。
  • delete_ifメソッド: ブロックに与えられた条件に合致する全ての要素を配列から削除します。条件に基づいて要素を一括削除する場合に有用です。
  • rejectメソッド: delete_ifと同様に条件に合致する要素を配列から削除しますが、元の配列は変更せず、新しい配列を返します。元の配列を保持しつつ、条件に合わない要素だけで新しい配列を作りたい時に使います。
  • reject!メソッド: rejectと似ていますが、元の配列自体を変更します。条件に合わない要素を削除したいが、新しい配列を作成せずに元の配列を直接更新したい場合に使用します。
  • clearメソッド: 配列の全ての要素を削除し、空の配列を返します。配列を完全にリセットしたい場合に使用します。

これらのメソッドを適切に使用することで、Rubyプログラミングにおける配列操作がより柔軟かつパワフルになります。

状況や要件に応じて最適なメソッドを選択し、効果的なコードを書くことが重要です。

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

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

-配列の使い方

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock