Ruby 배열 메서드를 찾는 중...

코드 챌린지로 인해 깨어 있을 수 있지만 결과는 귀하의 노력에 달려 있습니다. Ruby를 보면 일종의 지름길을 찾을 수 있습니다. 아래 목록은 코드를 짧고 달콤하게 만드는 방법입니다.


여기에서 Ruby에서 가장 많이 사용되는 몇 가지 배열 메서드에 대한 간단한 소개를 볼 수 있습니다. 터미널에서 IRB을 열어 저와 함께 아래의 이러한 배열 방법 중 일부를 테스트하고 직접 만들어 보십시오.



Ruby의 .shuffle 메서드는 원래 배열의 모든 요소가 섞인 새 배열을 반환합니다.

method_card = [uniq, sample, rotate, reverse]
method_card.shuffle
# => [“reverse”, “sample”, “uniq”, “rotate”] 

lucky_number = [13, 5, 3, 8, 15]
lucky_number.shuffle
# => [5, 15, 3, 8, 13]




.sample 메서드는 원래 배열에서 임의 요소 또는 임의 요소의 배열을 반환합니다. 원래 배열에 중복 요소가 포함되어 있지 않으면 요소가 반복되지 않습니다.

fortune = ["It will come to pass", "Error 404 Fortune not found", "Not this year", "I will not tell"] 

fortune.sample
# => "I will not tell" 
fortune.sample
# => "Error 404 Fortune not found
fortune.sample(2)
# => ["Not this year", "I will not tell"] 
fortune.sample(3)
# => ["It will come to pass", "Error 404 Fortune not found", "Not this year"] 





.reverse 메서드는 원래 배열의 요소를 역순으로 포함하는 새 배열을 반환합니다. .reverse_each에서 자세한 내용options.을 확인할 수도 있습니다.

fortune_teller = ["Madame Ruby", "Great React", "Code Seeker"] 
tellers = fortune_teller.reverse  
# => ["Code Seeker", "Great React", "Madame Ruby"] 

lucky_number = [13, 5, 3, 8, 15]
my_numbers = lucky_number.reverse
# => [15, 8, 3, 5, 13] 




.sort 메서드는 원래 배열의 요소가 정렬된 새 배열을 반환합니다. <=> 연산자를 사용하여 배열의 요소를 비교합니다. "우주선 연산자"라고도 합니다. 이에 대해 자세히 알아볼 수 있습니다. operator. .sort 방법은 숫자를 최소에서 최대로 정렬하고 문자열을 알파벳순으로 정렬합니다. .reverse 메서드를 연결하여 새 배열을 내림차순으로 가져올 수도 있습니다.

lucky_number = [13, 5, 3, 8, 15] 
num1 = lucky_number.sort          
# => [3, 5, 8, 13, 15] 
num2 = lucky_number.sort.reverse  
# => [15, 13, 8, 5, 3] 

answer = ["yes", "no", "maybe", "doubtful"] 
a1 = answer.sort   
# => ["doubtful", "maybe", "no", "yes"] 
a2 = answer.sort.reverse 
# => ["yes", "no", "maybe", "doubtful"] 


숫자나 문자열 이외의 항목이 포함된 배열을 정렬하려면 .sort_by 를 사용해야 합니다. Learn more


.uniq 메서드는 일부 중복 요소가 있는 데이터 목록으로 작업할 때 유용합니다. 배열을 반복하여 중복 데이터를 필터링할 수 있지만 단순히 .uniq 를 사용할 수 있는데 왜 그렇게 합니까? .uniq Ruby 방법은 원래 배열에서 중복 요소를 제거한 후 새 배열을 반환하는 비파괴적인 방법입니다.

lucky_number = [6, 13, 5, 3, 13, 8, 6]
num1 = lucky_number.uniq    
# => [6, 13, 5, 3, 8] 

# sort and discard duplicates
num2 = lucky_number.sort.uniq
# => [3, 5, 6, 8, 13] 

# sort by descending and discard duplicates
num3 = number.sort.reverse.uniq
# => [13, 8, 6, 5, 3] 


또한 데이터를 병합하고 중복을 피하려는 경우 배열을 병합하고 중복을 버리는 파이프 연산자|를 사용할 수 있습니다.

number_charm = [6, 13, 5, 3, 13, 8, 6]
number_choice = [4, 13, 3, 15, 18] 
combine = number_charm | number_choice
# => [6, 13, 5, 3, 8, 4, 15, 18] 

# using sort to organize
combine.sort
# => [3, 4, 5, 6, 8, 13, 15, 18]
# no duplicates from merge


이 방법을 자주 사용할 때마다 Ruby 세트 탐색을 고려할 수 있습니다. Ruby 세트를 사용하면 세트의 모든 항목이 고유함을 보장합니다. sets과 배열의 차이점에 대해 알아볼 수 있습니다. 원래 배열을 변경하려면 파괴적인 .uniq!를 사용해야 합니다. 이에 대한 자세한 내용이 나옵니다.


.rotate 메서드는 개수가 먼저 나오도록 원래 배열의 요소를 회전하는 새 배열을 반환합니다. 음수를 사용하여 반대 방향으로 회전할 수도 있습니다. -1은 배열의 마지막 요소입니다.

answer = ["yes", "no", "maybe", "doubtful"] 
a1 = answer.rotate     # => ["no", "maybe", "doubtful", "yes"] 
a2 = answer.rotate(2)  # => ["maybe", "doubtful", "yes", "no"] 
a3 = answer.rotate(3)  # => ["doubtful", "yes", "no", "maybe"] 
a4 = answer.rotate(-1) # => ["doubtful", "yes", "no", "maybe"] 
a5 = answer.rotate(-2) # => ["maybe", "doubtful", "yes", "no"] 






위의 비파괴적 방법을 사용하면 원본 데이터가 보존됩니다. 이러한 메서드 끝에 느낌표!를 추가하면 bang 메서드가 생성됩니다. Bang 메소드는 파괴적이기 때문에 주의해서 사용해야 합니다. 즉, 메소드가 호출된 데이터를 변경합니다.

자세히 알아보기Ruby array methods...



&GitHub에서 나와 연결할 수 있습니다.

리소스: Ruby-Doc.org , educative , Canva

좋은 웹페이지 즐겨찾기