reduce는 자바스크립트 배열 메서드 중 하나이다.
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. mdn
리듀스(reduce)는 배열안의 각 요소의 콜백 함수를 실행하는데 이때 네 개의 인자를 가진다.
콜백 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중에는 유지가 되므로 최종 결과는 하나의 값이 된다.
이때 추가로 리듀스에는 초기값(initalValue)이 존재한다.
콜백 함수의 최초 호출에서 첫 번째 인수에 제공해주는 값으로 만약이 초기값을 제공하지 않는다면 배열의 첫 번째 요소를 사용한다.
또한 빈 배열일 경우에는 이 초기값을 주지 않으면 호출 오류가 발생하게 된다.
arr.reduce((acc, cur, idx, src) => {
console.log(acc, cur, idx, src)
return acc + cur
})
위 코드는 대표적인 예시로 배열 안의 모든 값을 더해주는 코드이다.