class Array
def strip_values_at!(*args)
args.each do |x|
#For each mentioned index, replace its value with a dummy object.
values = []
dummy = Object.new
args.each do |i|
if i < size
values << self[i]
self[i] = dummy
end
end
#Strip out the dummy object.
delete(dummy)
return values
end
end
end
p a = ("a".."h").to_a
p a.strip_values_at!(1, 0, -2) # => ["b", "a", "g"]
p a # => ["c", "d", "e", "f", "h"]
p a.strip_values_at!(1000) # => []
p a # => ["c", "d", "e", "f", "h"]
|