配列から指定した位置以降の要素を削除する
Rubyで配列から指定した位置以降の要素をすべて削除する方法です。
配列の操作はよく使います。
目次
- コード
- 元の配列に変更を加えたくない場合
- 参考リンク
コード
1件単位での削除(delete)の仕方は知っていましたが、まとめて削除する場合は「slice!」を利用します。
arr = ["1", "2", "3", "4", "5"]
arr2 = arr.slice!(2, 2)
# 結果: arr = ["1", "2", "5"]
# 結果: arr2 = ["3", "4"]
2つ目の引数に配列から削除したい個数以上の値を指定してもエラーは出なかったので、指定した位置以降の要素をすべて削除するなら length を指定すればいいと思います。
arr = ["1", "2", "3", "4", "5"]
arr2 = arr.slice!(2, arr.length)
# 結果: arr = ["1", "2"]
# 結果: arr2 = ["3", "4", "5"]
元の配列に変更を加えたくない場合
元の配列に変更を加えたくない場合は「slice」(!がつかない)を利用します。
arr = ["1", "2", "3", "4", "5"]
arr2 = arr.slice(0, 2)
# 結果: arr > ["1", "2", "3", "4", "5"]
# 結果: arr2 > ["1", "2"]