[JavaScript] Array.reduce()

dev.galim·2023년 5월 2일
0

JavaScript

목록 보기
3/6

Array.reduce()

➡️ 배열의 각 요소를 순회하며 callback 함수의 실행 값을 누적해, 하나의 결과값을 반환한다.

arr.reduce( function(acc, cur, index, arr) {
} [, initialValue] )

파라미터

1. callback 함수
아래의 4가지 인수를 가진다.

  • accumulator(acc) - callback 함수의 반환값을 누적한다.
  • currentValue(cur) - 배열의 현재 요소
  • index(Optional) - 배열의 현재 요소의 인덱스
  • array(Optional) - 호출한 배열(원본 배열)

_callback 함수의 반환값은 accumulator에 할당되고 배열을 순회하며 계속 누적되어 최종적으로 하나의 값을 반환한다.

2. initialValue(Optional)
- acc의 초기값.
초기값을 제공하지 않을 경우 배열의 첫번째 요소를 사용하고, 빈 배열에서 초기값이 없을 경우 에러가 발생한다.


예시와 함께 알아보기

가장 단순한 형태

2개의 인자

  • acc(accumulator) - 누산기. callback 함수의 반환값을 누적한다.
  • cur(currentValue) - 배열의 현재 요소.

예시

const numbers = [1, 2, 3, 4, 5];
return numbers.reduce((acc, cur) => acc + cur)); // 15

▶️ acc엔 첫번째 요소인 1이 할당되고, cur엔 나머지 요소인 2, 3, 4가 순차적으로 들어간다.

초기값이 추가된 형태

2개의 인자 + 1개의 초기값

  • acc(accumulator) - 누산기. callback 함수의 반환값을 누적한다.
  • cur(currentValue) - 배열의 현재 요소.
  • initialValue - acc의 초기값.

예시

const numbers = [1, 2, 3, 4, 5];
return numbers.reduce((acc, cur) => acc + cur, 2)); // 12

▶️ acc는 index 2부터 누적되어 3이 할당되고, cur엔 나머지 요소인 4, 5가 순차적으로 들어간다.

모든 파라미터가 추가된 형태

4개의 인자 + 1개의 초기값

  • acc(accumulator) - 누산기. callback 함수의 반환값을 누적한다.
  • cur(currentValue) - 배열의 현재 요소.
  • index(Optional) - 배열의 현재 요소의 인덱스
  • array(Optional) - 호출한 배열(원본 배열)
  • initialValue - acc의 초기값.
profile
열심히 해볼게요

0개의 댓글