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 사용 방법에 대한 설명을 마치도록 하겠습니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청사항은 언제든지 말씀해주세요!
피드백도 언제나 환영입니다!
감사합니다.
'Developer > Ruby' 카테고리의 다른 글
Ruby Enumerable.zip 사용 방법 (루비 배열, 해시 데이터 묶는 방법) (0) | 2022.11.21 |
---|---|
Ruby 문자열, 심볼 대문자 소문자 변환 방법 (첫글자만 대문자로 / 대문자를 소문자로 / 소문자를 대문자로 / 대문자는 소문자로, 소문자는 대문자로) (0) | 2022.11.17 |
Ruby 함수 정의하는 방법 (0) | 2022.09.26 |
Ruby n번 반복하는 방법 - Integer.times (2) | 2022.09.23 |
Ruby Hash 반복문 사용하는 방법 - Hash.each / Hash.each_pair / Hash.each_key / Hash.each_value (0) | 2022.09.22 |
댓글