Post

[Javascript] Array 인스턴스 메서드

Array.prototype.reduce()

reduce()

reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

const array = [1, 2, 3, 4];

// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array.reduce(
  (accumulator, currentValue) => accumulator + currentValue,
  initialValue,
);

console.log(sumWithInitial);
// Expected output: 10

매개변수

callback

배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받는다.

  • accumulator

    누산기는 콜백의 반환값을 누적하고 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값인다

  • currentValue

    처리할 현재 요소.

  • currentIndex Optional

    처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작한ㄷ.

  • array Optional

    reduce()를 호출한 배열.

reduce() 작동 방식

다음의 예제를 보면서 생각해보기

jsCopy to Clipboard

1
2
3
4
5
[0, 1, 2, 3, 4].reduce(
  function (accumulator, currentValue, currentIndex, array) {
    return accumulator + currentValue;
  },
);

콜백은 4번 호출됩니다. 각 호출의 인수와 반환값은 다음과 같다

callbackaccumulatorcurrentValuecurrentIndexarray반환 값
1번째 호출011[0, 1, 2, 3, 4]1
2번째 호출122[0, 1, 2, 3, 4]3
3번째 호출333[0, 1, 2, 3, 4]6
4번째 호출644[0, 1, 2, 3, 4]10

reduce()가 반환하는 값으로는 마지막 콜백 호출의 반환값(10) 을 반환한다.

This post is licensed under CC BY 4.0 by the author.