reduce
는 두 개의 인자를 받을 수 있다.
1) 콜백함수(reducer)
2) 처음 값 (optional)
reducer라고 부르는 콜백함수
는 네 개의 인자까지 받을 수 있다.
1) accumulator : 콜백함수의 반환값이 담긴다. 만약 옵션인 처음 값
이 있다면 콜백의 첫번째 호출의 accumulator
는 처음 값
이다.
2) 현재 값
3) 현재 인덱스 (optional)
4) 원본 배열 (optional)
현재 값
에 배열의 요소가 하나씩 들어오고 accumulator
와 현재 값
을 콜백함수
의 인자로 넣어 실행. 그 반환값을 다시 accumulator
에 할당해서 배열의 모든 요소에 동일하게 진행. 인자의 이름은 그 때마다 상황에 맞게 지어주면 된다. filter, map 등등에서 그랬던 것처럼.
처음 값
의 유무에 따라 콜백함수 최초 호출 시 accumulator
와 현재 값
accumulator
에 처음 값
이 담기고, 현재 값
은 배열의 첫 번째 값accumulator
는 배열의 첫 번째 값, 현재 값
은 두 번째 값배열의 모든 숫자의 합은 너무 많이 봐서 그냥 아무 생각 없이 외우는 지경이다. reduce를 활용한 다른 예시는 뭐가 있을까?