여러 가지 질문이 있지만 하나의 키만 사용한 적이 있습니다. 기간이 다른 또는 존재하지 않을 수도 있기 때문에 Ruby는 해시 배열에서 중복 항목을 제거하지만 둘 이상의 값을 기반으로합니다.
a = [{:name=>"Yes, Yes, Yes", :artist=>"Some Dude", :composer=> 'First Dude', :duration=>"3:21"},
{:name=>"Chick on the Side", :artist=>"Another Dude", :duration=>"3:20"},
{:name=>"Luv Is", :duration=>"3:13"},
{:name=>"Yes, Yes, Yes", :artist=>"Some Dude", :composer=> 'First Dude', :duration=>"2"},
{:name=>"Chick on the Side", :artist=>"Another Dude"}]
a.uniq
나는 해시 다음과 같은 배열을 가지고있다. 데이터베이스에 동일한 이름, 아티스트 및 작곡가의 중복 항목을 허용하지 않는 고유 키를 설정 했으므로 사람들이이 3 가지 키에 중복 항목이있을 때가끔 오류가 발생합니다.
uniq
3 키를 확인하는 방법이 있습니까? 나는이 같은 블록 시도 :
new_tracks.uniq do |a_track|
a_track[:name]
a_track[:artist]
a_track[:composer]
end
을하지만 키가없는 곳은 아무 것도 무시합니다 (예를 들어, 위의 기준을 충족하지 않는 작곡가없이 항목).
나는 항상 :name
키를 사용할 수 있지만, 동일한 제목이지만 다른 아티스트 또는 작곡가의 편집에서 잠재적으로 유효한 트랙을 제거하고 있음을 의미합니다.
이것은 Ruby 2.0에 있습니다.
위대한, ** 고마워요! ** 첫 번째 작품은 괜찮습니다 :'.uniq {| track | [트랙 [: 이름], 트랙 [: 아티스트], 트랙 [: 작곡가]. 조인 (":")}'. 두 번째 것은 나에게'SyntaxError : unexpected '}'오류를 주며 ']''을 기대합니다. 이 문제를 해결하면 정의되지 않은 메서드'attributes'가 생깁니다. 하지만 첫 번째 트릭을 않습니다. 다시 한번 감사드립니다. – kakubei
구문 오류가 수정되었습니다. –
그 줄에 여전히'정의되지 않은 메소드'attributes''가 있습니다 ... – kakubei