반응형
SMALL
*별표 된 항목은 필수가 아닌 option
reduce
Array.reduce(callback, *initialValue)
==> 배열의 요소를 순회하며 callback함수를 실행한다.
reduce의 callback함수는 4개의 인수를 받을 수 있다.
-
accumulator
==> callback함수의 반환 값을 누적한다.
initialValue가 있을 경우 initialValue를, 없을 경우 배열의 첫 번째 요소를 받는다. -
currentValue
==> 배열에서 현재 처리할 요소.
initialValue가 있을 경우 배열의 첫번째 요소, 없을 경우 배열의 두 번째 요소를 받는다. -
*currentIndex
==> 현재 처리할 요소의 인덱스
-
*array
==> reduce()를 호출한 배열
reduce 메서드의 가장 흔한 예
let arr = [0, 1, 2, 3, 4];
//arr.reduce(function(accumulator, currentValue, currentIndex, array) {
// return accumulator + currentValue;
//});
//initialValue가 없을 경우
arr.reduce((acc, cur) => acc + cur);
//10
//initialValue가 제공될 경우
arr.reduce((acc, cur) => acc + cur, 10);
//20
reduce 메서드의 작동 순서 (괄호는 initialValue가 제공될 경우)
callback 호출 | accmulator | currentValue | currentIndex | array | 반환값 |
1번째 호출 | 0 (10) | 1 (0) | 1 (0) | [0, 1, 2, 3, 4] | 1 (10) |
2번째 호출 | 1 (10) | 2 (1) | 2 (1) | [0, 1, 2, 3, 4] | 3 (11) |
3번째 호출 | 3 (11) | 3 (2) | 3 (2) | [0, 1, 2, 3, 4] | 6 (13) |
4번째 호출 | 6 (13) | 4 (3) | 4 (3) | [0, 1, 2, 3, 4] | 10 (16) |
(5번째 호출) | (16) | (4) | (4) | [0, 1, 2, 3, 4] | (20) |
*참고 : developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
반응형
LIST
'개발 > Javascript' 카테고리의 다른 글
arguments, rest parameter (0) | 2021.01.28 |
---|---|
closure(클로저) (0) | 2021.01.27 |
var, let, const (0) | 2021.01.21 |
Scope(유효범위) (0) | 2021.01.21 |
Hoisting (0) | 2021.01.20 |