본문 바로가기

자바스크립트

[javascript] reduce()

반응형

Array.prototype.reduce(누적값, 배열의 요소, 기타옵션)

배열의 각 요소에 차례대로 접근하여 하나의 결과값을 반환하는 메서드

참고) 누적값, 배열요소 등의 용어는 이해를 위해 편의상 이름을 정한 것일 뿐 공식적 명칭은 아닙니다.

 

배열요소의 자리는 콜백함수가 1회 호출 시 마다 처리할 현재값을 나타낸다. 누적값은 실질적으로 배열요소인 현재값을 처리할 시 산출되는 결과이다.

 


초깃값이 지정되지 않으면, 누적값에는 배열의 0번째 요소가 들어가고, 배열요소(value)는 배열의 1번째 요소부터 차례대로 들어간다.

이 때 배열요소 value 에는 배열의 0번째가 아닌 1번째 요소 부터 차례대로 들어간다.



 

누적값은 초깃값이 지정되면, 초깃값이 누적값을 대체하며, 배열요소는 기존의 1번째 요소가 아닌 0번째 요소부터 차례대로 대입된다.


초깃값을 5로 지정했으므로 누적값의 자리에는 초깃값이 들어간 것을 확인할 수 있다.


누적값에 별도의 값을 더하면, 그 값이 누적값에 더해지며, 콜백함수가 호출 될 때 마다 누적되어 최종 누적값이  result 변수에 저장되어 출력된다.


초깃값 5에 5를 더한 값이 계속 누적이 되어 최종적으로 20이 출력되었다.


누적값에 배열요소를 더하면, 더한 값이 누적된다.


누적값에 0, 1, 1 을 차례대로 더하여 최종적으로 누적된 값인 7이 출력되었다.


요약하면

 reduce 메서드는  콜백함수의 첫 번째 매개변수에는 콜백함수가 호출 될 때 마다 누적시켜나갈 초기의 값을 입력하며, 두 번째 매개변수는 순회하고자 하는 배열의 요소가 들어가며, 세 번째 매개변수는 인덱스를 받는다. 

 

이를 통해, 두 번째 매개변수로 받은 배열요소의 값들(현재값)을 처리하여 최종적으로 누산(누적)된 단일 결과를 반환한다. 

반응형