ben
ben

Reputation: 29777

Simple question about deleting an object from a Ruby array

I have a Ruby (1.9.2) array which I need to remove an object from.

[object1, object2, object3]

At the moment I'm doing

array.delete_at(1)

which removes the object, but then there is an empty array spot at that index.

[object1, , object3]

How do I remove an object so that the array is resized so that there is no empty spot in the array?

[object1, object3]

Thanks for reading.

Upvotes: 0

Views: 192

Answers (2)

Nakilon
Nakilon

Reputation: 35054

irb> a = [1,2,3]
=> [1, 2, 3]
irb> a.delete_at 1
=> 2
irb> a
=> [1, 3]

No spots here...

Upvotes: 4

DanneManne
DanneManne

Reputation: 21180

I think slice! is the method you're looking for

>> arr = [object1, object2, object3]
[object1, object2, object3]

>> arr.slice!(1)
object2

>> arr
[object1, object3]

Upvotes: 0

Related Questions