본문 바로가기
Developer/Ruby

Ruby Enumerable.partition 사용 방법 (루비 배열, 해시 조건별로 나누기)

by 김씩씩 2022. 11. 18.

Ruby Enumerable.partition 사용 방법 (루비 배열, 해시 조건별로 나누기)

 

Ruby에서 Enumerable(열거 가능)한 객체에는 parition 이라는 메소드가 있습니다.

이 메소드를 사용하면 열거 가능한 객체인 배열, 해시를 원하는 조건에 따라 2개의 배열로 간단하게 나눌 수 있습니다.

javasciprt에서는 underscore.js 라이브러리에서 제공해주는 partition 을 사용하거나 reduce 를 사용하여 직접 나눠주곤 했는데 Ruby에서는 기본으로 제공합니다.

그럼 partition 메소드 사용방법을 알려드리도록 하겠습니다.

 

Enumerable.partition 사용 방법

arr1 = (1..10).partition { |v| v.odd? }
p arr1  # [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

arr2 = ["a", "ab", "abc", "abcd", "abcde", "abcde"].partition { |v| v.length > 2 }
p arr2  # [["abc", "abcd", "abcde", "abcde"], ["a", "ab"]]

arr3 = { jungsig: 1, tom: 2, david: 3, thomas: 4, john: 5, }.partition { |k, v| k.match?(/j/) }
p arr3  # [[[:jungsig, 1], [:john, 5]], [[:tom, 2], [:david, 3], [:thomas, 4]]]

arr4 = { jungsig: 1, tom: 2, david: 3, thomas: 4, john: 5, }.partition{ |k, v| v > 2 }
p arr4  # [[[:david, 3], [:thomas, 4], [:john, 5]], [[:jungsig, 1], [:tom, 2]]]

partition { |element| … } -> [true_array, false_array]

Array, Hash 와 같이 열거 가능한 객체에 사용하여 원하는 조건에 따라 참인 경우 0번 index 배열안에, 거짓인 경우 1번 index 배열안에 담겨 2차원 배열로 반환해 줍니다.

 

 

 

이상으로 Ruby Enumerable.partition 사용 방법에 대한 설명을 마치도록 하겠습니다.

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글