Я пытаюсь удалить элементы из массива, если значение в этом массиве соответствует заданной строке.
У меня есть массив, который имеет массив тегов.Я сравниваю имена тегов, чтобы увидеть, соответствуют ли они тому, что пользователь хочет исключить из своего поиска.Если это произойдет, я хотел бы либо удалить этот элемент из основного массива, либо, возможно, добавить элемент, который не соответствует.
Вот что у меня есть:
results = Array.new
test = 0
no_tags.each do |no_tag| #an array of tags whose resources are not to be included
resources.each do |r|
add_to_array = false
r.tags.each do |t|
if t.name.eql? no_tag
test += 1
add_to_array = false
else
add_to_array = true
end
end
if add_to_array
results << r
end
end
end
Переменная test - это просто переменная для отладки количества совпадающих вхождений, которое оказывается 141 из 763 ресурсов.Однако, когда я делаю results.count после запуска этого блока, я получаю 732 только тогда, когда должен получить 622.
Для пояснения мне нужно либо удалить элемент массива ресурсов, если массив тегов содержит совпадение,или другой вариант - включить элемент массива ресурсов в новый массив, если совпадение не найдено.
Это будет возвращено браузеру как JSON, и мне нужно исключить ресурсы, теги которых соответствуют значениям массива no_tags.