2017.6.22
2017.6.23

配列から指定した位置以降の要素を削除する

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"]

参考リンク

Ruby】関連記事