: reduce 메서드는 자신을 호출한 배열을 모든 요소를 순회하며 인수로 전달받은 콜백함수를 반복 호출한다. 그리고 콜백 함수의 반환값을 다음 순회 시에 콜백 함수의 첫 번째 인수로 전달하면서 콜백 함수를 호출하여 하나의 결과값을 만들어 반환한다. 이때 원본 배열은 변경되지 않는다.
// 1부터 4까지 누적을 구한다.
const sum = [1, 2, 3, 4].reduce((accumulator, currentValue, index, array) => accumulator + currentValue, 0);
console.log(sum); //10
구분 | accumulator | currentValue | index | array | 콜백함수의 반환값 |
---|---|---|---|---|---|
첫 번째 순회 | 0 (초기값) | 1 | 0 | [1,2,3,4] | 1 (accumulator+currentValue) |
두 번째 순회 | 1 | 2 | 1 | [1,2,3,4] | 3(accumulator+currentValue) |
세 번째 순회 | 3 | 3 | 2 | [1,2,3,4] | 6(accumulator+currentValue) |
네 번째 순회 | 6 | 4 | 3 | [1,2,3,4] | 10(accumulator+currentValue) |
평균 구하기
최대값 구하기(Math.max 메서드를 사용하는 방법이 더 직관적이다.)
요소의 중복횟수 구하기
중첩 배열 평탄화
중복 요소 제거(filter 메서드를 사용하는 방법이 더 직관적이다.)