У меня есть массив из ~ 1200 объектов ruby, и я хочу зациклить их и удалить объекты с именами, которые содержат слова или части слов.
Итак, я попробовал это:
list.each do |item|
if item.name =~ /cat|dog|rat/i
puts item.name
list.delete(item)
end
end
Это работает, за исключением того, что кажется, что он пропускает некоторые элементы с именами, которые должны совпадать. Если я запускаю его снова, он находит еще несколько, а если я запускаю его в другой раз, он находит еще несколько. Он находит меньше с каждым разом, но мне нужно запустить его 3 раза, чтобы удалить все.
Почему в мире это происходит?