Reduce

민겸·2022년 10월 24일
0

JavaScript

목록 보기
14/20
post-thumbnail

오늘은 배열 메서드 Array.prototype.reduce()에 대해 알아보자.

reduce() 메서드는 배열의 각 요소에 대해 주어진 reducer함수를 실행하고, 하나의 결과값을 반환한다. 이 reducer 함수는 4 개의 인자를 가지는데, 순서대로

  1. 누산기 (accumulator)
  2. 현재 값 (current value)
  3. 현재 인덱스 (current index)
  4. 원본 배열 (src)

가 되겠다.

reducer 함수의 반환값은 누산기에 누적되고, 누산기는 배열의 각 요소를 순회하다가 끝나므로 결과는 하나의 값이 된다.

reduce 메서드는 초기값을 설정해줄 수 있는데, 이 초기값은 optional이다. 즉 있어도 되고 없어도 되는 값이다. 여기서 주의할 점이 있는데 초기값이 생략되어있는 경우, 누산기는 0 번째 인덱스를 무시하고 1 번째 인덱스 부터 시작한다.

초기값이 있는 상태에서 메서드가 실행되면, 누산기의 값은 초기값이 되고 현재 값(current value)는 배열의 첫 번째 값이 된다.

초기값이 없느 상태에서 메서드가 실행되면, 누산기의 값은 배열의 첫 번째 값과 같고 현재 값(current value)는 배열의 두 번째 값과 같게 된다.

만약 빈 배열을 제공하고 초기값 또한 없다면 TypeError가 발생한다.
만약 빈 배열을 제공하고 초기값을 제공한다면 콜백 호출 없이 초기값을 반환한다.

그래서 대개의 상황에서 결과로 나올 값의 타입을 알고 있다면 초기값을 정해주는 것이 바람직하다.

profile
기술부채상환중...

0개의 댓글