如何在Ruby中统一数组?

Shu*_*ham 2 ruby mechanize

我知道" .uniq"方法,但它在这里不起作用.我在一个数组中推送了Mechanize链接实例并应用了它,但它没有删除重复项.这是阵列..

#<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">,
Run Code Online (Sandbox Code Playgroud)

但仍然在使用之后." .uniq"结果是一样的.这是我正在使用的ruby代码..

page.links.each {|link| 
    page_links.push link if link.href =~ /inquiry-results/i and link.text =~ /[0-9]+/
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*une 8

Array#uniq使用对象hasheql?方法.确保为您的对象正确定义了这些,或者使用uniq_by您的标准.