자바스크립트에서 reduce는 배열에만 사용가능한 메소드로
배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고,
하나의 결과값을 반환한다.
arr.reduce(callback[, initialValue])
reduce()는 빈 요소를 제외하고 배열 내에 존재하는 각 요소에 대해
callback 함수를 한 번씩 실행하는데
콜백함수는 다음의 네 개의 인자를 받는다
또한 추가로 initialValue(초기값)을 제공받는데
초기값이 주어진 경우.
acc는 initialValue와 같고
cur은 배열의 첫 번째 값과 같다.
초기값이 주어지지 않은 경우.
acc는 배열의 첫 번째 값과 같고 cur은 배열의 두 번째 값
즉 배열의 1번 인덱스 와 같다.
reduce에서 배열이 비어있는데 초기값을 제공하지 않으면, TypeError가 발생한다.
추가로 초기값으로는 어떠한 값도 들어갈 수 있다.
[1,2,3,4,5].reduce(function(acc,cur,index,arr){
console.log(`acc = ${acc}, cur = ${cur}, index = ${index}, arr = ${arr}`)
return acc+cur;
})