Reduce

민겸·2022년 10월 24일
0

JavaScript

목록 보기
14/21
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개의 댓글

Powered by GraphCDN, the GraphQL CDN