Вот массив. Мне нужно, чтобы отвергнуть блок массива, который ITEM_ID == 200.Как отклонить блок массива с определенным условием
:invoice_lines=>[{:amount=>"60.00", :description=>"repair call",:id=>"10138500", :item_id=>"80062", :price=>"60.0000000000"},
{:amount=>"9.83", :description=>"Tax", :id=>"10138501", :item_id=>"200", :price=>"8.1875000000"},
{:amount=>"60.00", :description=>"Wireless Router", :id=>"10138502", :item_id=>"80060", :price=>"60.0000000000"}]
Я пытаюсь таким образом, но не может получить результат.
i = 0
num = invoice[:invoice_lines].length
items = []
while i < num
if invoice[:invoice_lines][i][item_id] == 200
invoice[:invoice_lines].delate_at(i)
end
i += 1
end
Любая помощь будет оценена по достоинству.
Интересно, может ли быть [метод, который делает именно это) (http://ruby-doc.org/core-2.2.0/Array.html#method-i-reject-21)? – ndn
Попробуйте 'num.reject {| n | n [: item_id] == "200"} 'и изменить' num = invoice [: invoice_lines] .length' на 'num = invoice [: invoice_lines]' – Pavan
'ruby-on-rails' был удален? – RSB