[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
매개변수
배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받는다.
누산기는 콜백의 반환값을 누적하고 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서
initialValue를 제공한 경우에는initialValue의 값인다처리할 현재 요소.
currentIndexOptional처리할 현재 요소의 인덱스.
initialValue를 제공한 경우 0, 아니면 1부터 시작한ㄷ.arrayOptionalreduce()를 호출한 배열.
reduce() 작동 방식
다음의 예제를 보면서 생각해보기
jsCopy to Clipboard
1
2
3
4
5
[0, 1, 2, 3, 4].reduce(
function (accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
},
);
콜백은 4번 호출됩니다. 각 호출의 인수와 반환값은 다음과 같다
callback | accumulator | currentValue | currentIndex | array | 반환 값 |
|---|---|---|---|---|---|
| 1번째 호출 | 0 | 1 | 1 | [0, 1, 2, 3, 4] | 1 |
| 2번째 호출 | 1 | 2 | 2 | [0, 1, 2, 3, 4] | 3 |
| 3번째 호출 | 3 | 3 | 3 | [0, 1, 2, 3, 4] | 6 |
| 4번째 호출 | 6 | 4 | 4 | [0, 1, 2, 3, 4] | 10 |
reduce()가 반환하는 값으로는 마지막 콜백 호출의 반환값(10) 을 반환한다.
This post is licensed under CC BY 4.0 by the author.