с участием

я есть массив из ~ 1200 объектов ruby, и я хочу зациклить их и удалить объекты с именами, которые содержат слова или части слов.

Итак, я попробовал это:

list.each do |item|
  if item.name =~ /cat|dog|rat/i
    puts item.name
    list.delete(item)
  end
end

Это работает, за исключением того, что, кажется, пропускает некоторые элементы с именами, которые должны совпадать. Если я запускаю его снова, он находит еще несколько, а если я запускаю его в другой раз, он находит еще несколько. Он находит меньше с каждым разом, но мне нужно запустить его 3 раза, чтобы удалить все.

Почему в мире это происходит?

Ответы на вопрос(2)

Ваш ответ на вопрос