본문 바로가기
프로그래밍 언어/JavaScript

[JS] 자바스크립트 reduce()를 알아보자

by BK0625 2023. 7. 28.
반응형

코딩 테스트를 풀던 중 정수 배열이 주어지고 평균 값을 구하라는 문제가 나왔다. 사실 너무 쉬운 문제이다. 단순 반복문을 사용하지 않고 reduce를 사용했다.

 

 

이 reduce 함수는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환한다.

 

구조는 다음과 같은데

 

 

callback은 배열의 각 요소에 대해 실행할 함수를 의미한다. 다음 네 가지 인자를 가지게 되는데

 

accumulator - 누산기라고 할 수 있다. 즉 콜백의 반환값을 누적하게 된다.

currentValue - 처리할 현채 요소

index(Optional) - 배열의 현재 요소의 인덱스

array(Optional) - 호출한 배열

 

즉 위 풀이에서 sum이 accumulator이고 cur이 currentValue이다. 즉 배열의 요소 하나하나를 지나며 currentValue를 계속해서 더해나가는 식이다. 

 

그럼 initialValue는 무엇일까. 바로 callback의 최초 호출에서 첫 번째 인수에 제공하는 값이다. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용하게 된다. 빈 배열에서 초기값 없이 reduce()를 사용하게 되면 첫 번째 요소가 없기 때문에 오류가 발생한다.

 

이런 방식으로 배열 전체의 합을 쉽게 구할 수가 있다. reduce() 함수는 배열의 각 요소에 주어지는 함수를 실행하기 때문에 더 다방면으로 활용할 수 있다.

 

 

공부하면서 정리한 내용입니다. 모든 지적 감사히 받겠습니다:)

반응형