Как унифицировать массив в Ruby? - PullRequest
2 голосов
/ 13 августа 2010

Мне известен метод ".uniq", но он здесь не работает. Я вставил Механизировать ссылки в массиве и применил его, но он не удаляет дубликаты. Вот массив ..

#<Mechanize::Page::Link "2" "/inquiry/inquiry-results.jsp?d-16544-p=2&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "3" "/inquiry/inquiry-results.jsp?d-16544-p=3&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "4" "/inquiry/inquiry-results.jsp?d-16544-p=4&middleName=&firstName=&lastName=JOHN">,
......................................................................................
#<Mechanize::Page::Link "2" "/inquiry/inquiry-results.jsp?d-16544-p=2&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "3" "/inquiry/inquiry-results.jsp?d-16544-p=3&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "4" "/inquiry/inquiry-results.jsp?d-16544-p=4&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "5" "/inquiry/inquiry-results.jsp?d-16544-p=5&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "6" "/inquiry/inquiry-results.jsp?d-16544-p=6&middleName=&firstName=&lastName=JOHN">,

но все равно после использования. ".uniq" результат тот же. Вот код рубина, который я использую ..

page.links.each {|link| 
    page_links.push link if link.href =~ /inquiry-results/i and link.text =~ /[0-9]+/
}

1 Ответ

8 голосов
/ 13 августа 2010

Array#uniq использует методы объектов hash и eql?. Убедитесь, что они правильно определены для ваших объектов, или используйте uniq_by с вашими критериями.

...