array.reduceRight() 메서드란?
JavaScript의 array.reduceRight()는 내장(Built-in) 함수로, 주어진 배열의 요소를 오른쪽에서 왼쪽 방향으로 순회하며 하나의 단일 값으로 축약(reduce)하는 역할을 합니다.
이 메서드는 콜백 함수로 두 개의 매개변수를 받습니다.
- previousValue(누적값): 이전 단계까지 처리된 누적 결과
- currentValue(현재값): 현재 순회 중인 배열 요소
배열의 마지막 요소부터 시작해 첫 번째 요소까지 차례대로 연산을 수행하며, 최종적으로 하나의 값이 반환됩니다. 일반적인 reduce() 메서드가 왼쪽에서 오른쪽으로 진행하는 것과 달리, reduceRight()는 그 반대 방향으로 동작한다는 점이 핵심 특징입니다.
동작 원리
아래 예제에서는 중첩된 배열(배열의 그룹)을 reduceRight() 메서드로 처리합니다. 오른쪽 끝에 있는 [9, 10]부터 시작하여 왼쪽의 [1, 2, 3]까지 concat()으로 이어 붙이면서, 모든 요소가 하나의 그룹인 9,10,x,y,z,1,2,3으로 병합되는 과정을 확인할 수 있습니다.
예제 코드
<html> <body> <script> const Arr = [ [ 1, 2, 3 ], [ "x", "y", "z" ], [ 9, 10 ] ]; array = Arr.reduceRight((previousValue, currentValue) => previousValue.concat(currentValue)); document.write(array); </script> </body> </html>
실행 결과
9,10,x,y,z,1,2,3
정리
reduceRight() 메서드는 배열을 뒤에서 앞으로 처리해야 하는 상황에서 유용하게 활용됩니다. 대표적인 사용 사례는 다음과 같습니다.
- 중첩 배열을 오른쪽부터 하나로 병합할 때
- 문자열이나 수식을 역순으로 조합해야 할 때
- 함수 합성(function composition)에서 실행 순서를 제어할 때