배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
(하나의 결과값으로 줄여줘서 reduce라는 이름을 쓴 것일까?)
누산기 (acc)
현재 값 (cur)
현재 인덱스 (idx)
원본 배열 (src)
const arr = [1, 3, 5, 7];
const result = arr.reduce((acc, cur, idx) => { return acc += cur; }, 0);
console.log(result);
// 16
const numbers = [1, 3, 5, 7];
numbers.reduce((누산값, 현재요소값, 현재요소의index, 현재배열) => {
return 다음누산값;
}, 초기누산값);
callback
배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받습니다.
accumulator
누산기는 콜백의 반환값을 누적합니다. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값입니다.
currentValue
처리할 현재 요소.
currentIndex Optional
처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작합니다.
array Optional
reduce()를 호출한 배열.
initialValue Optional
callback의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용합니다. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생합니다.
누적 계산의 결과 값.
참고 : https://bigtop.tistory.com/69
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce