reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. - 출처 MDN
arr.reduce(callback[, initialValue])
callback : 배열의 각 요소에 대해 실행할 함수이며, 다음 네가지 인수를 받습니다.
iniitalValue : callback의 최초 호출에서 첫번째 인수에 제공하는 값, 제공하지 않으면 배열의 첫번째 요소를 사용합니다.
reduce() 함수 호출에서 initialValue를 제공한 경우, accumulator === initialValue 이고 currentValue는 배열의 첫번째 값과 같습니다.
initialValue를 제공하지 않은 경우, accumulator는 배열의 첫번째 값과 같고 currentValue는 두번째와 같습니다.
참고: initialValue를 제공하지 않으면, reduce()는 인덱스 1부터 시작해 콜백 함수를 실행하고 첫번째 인덱스는 건너 뜁니다.
initialValue를 제공하면 인덱스 0에서 시작합니다.