uniq
사용 배열에서 모든 중복 요소를 제거할 수 있는 방법입니다.
어떻게 작동하는지 봅시다!
이와 같은 배열이 있는 경우 :
n = [1,1,1,2,3,4,5]
숫자 1
중복됩니다.
uniq
호출 이 배열에서 추가 배열을 제거하고 고유 번호가 있는 새 배열을 반환합니다.
예 :
n.uniq # [1,2,3,4,5]
uniq
n
은(는) 변경되지 않습니다. (원래 배열)이므로 uniq!
를 호출해야 합니다. , 또는 새 배열을 저장합니다.
예 :
unique_numbers = n.uniq
꽤 쉽죠?
하지만 많은 사람들이 uniq
차단합니다.
블록을 사용하면 더 많은 고급 작업을 수행할 수 있습니다. 것들.
설명하겠습니다...
블록과 함께 Ruby Uniq 방법을 사용하는 방법
uniq
를 호출할 때 , 배열 요소에서 해시를 만들어 작동합니다.
모든 요소는 해시의 키가 됩니다.
해시 키는 고유하기 때문에 해시의 모든 키 목록을 얻을 수 있으며 이 목록은 고유한 요소가 있는 새 배열이 됩니다.
지금 :
무언가를 독특하게 만드는 요소를 변경하려면 블록을 전달할 수 있습니다.
예시 :
fruits = %w(orange apple banana)
"Orange"와 "Banana"는 6자의 길이가 같습니다.
uniq
를 사용하는 경우 이렇게 :
fruits.uniq(&:size) # ["orange", "apple"]
그런 다음 문자열을 크기로 비교할 때 중복되기 때문에 "banana"를 삭제합니다.
또 다른 예 :
objects = [1, 2, "a", "b", :c, :d] objects.uniq(&:class)
이렇게 하면 클래스별로 고유한 개체가 있는 배열을 얻을 수 있습니다.
[1, "a", :c]
이것의 위력이 보이십니까?
블록을 uniq
에 전달할 때 , 고유한 것으로 간주되는 규칙을 정확히 정의할 수 있습니다.
여러 조건에서 Uniq를 사용하는 방법
여러 조건을 사용할 수 있습니다!
방법은 다음과 같습니다. :
User
가 있다고 가정해 보겠습니다. 클래스:
age
name
country
같은 연령의 국가당 한 명만 원합니다.
차단으로 간편함 :
[david, petter, raphael].uniq { |person| [person.age, person.country] }
이 코드를 사용하면 두 조건이 모두 일치해야 고유한 것으로 간주될 수 있습니다.
어떻게 작동합니까?
블록이 없으면 객체가 해시 키가 됩니다.
블록을 사용하면 산출된 값이 해시 키가 되고 객체가 해시 값이 됩니다.
그럼...
Ruby는 값을 가져와 새 배열로 반환합니다.
이것들은 구현 세부 사항일 뿐이지만 매우 흥미로워서 여러분과 공유하고자 합니다.
요약
uniq
에 대해 배웠습니다. 루비의 메소드! 정확한 사용 방법, 유용한 이유 및 작동 원리.
이제 기억할 수 있도록 이 방법으로 연습하세요.
읽어주셔서 감사합니다!