반응형
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

+ Recent posts