- Published on
Rubyで複数の配列を消す方法
Rubyの配列があったときにdelete_at
で一つずつは消すことは可能かと思います。
では、複数の配列を消すためにはどうしたらよいのでしょうか?
結論は、delete_at([0,1])
のように複数の配列を直感的に消す方法はなく、
delete_ifを使うしかありません。
t = ['a','b','c','d'] t.delete_if.with_index {|ele, i| [0,1].include?(i) }# 要素番号が0と1番目を消すコード
delete_if
とwith_index
を使っているので少し歪かもしれませんが、
これで一応、指定した(include?で指定)要素を消すことができます。
またdeleteは破壊的ですが、破壊的ではなく要素をなくしたい場合は、rejectが使えます。
t = ['a','b','c','d'] x.reject.with_index { |ele, i| [0,1].include?(i) } #=> ['c', 'd']
参考: Delete contents of array based on a set of indexes
参考: Removing multiple elements from array by index in Ruby [duplicate]