-
[Javascript] Array.reduce 문법코딩공부 2022. 5. 13. 17:26728x90반응형
구문
arr.reduce(callback[, initialValue])
callback은 4가지 인수를 받을 수 있습니다.
- accumulator
- currentValue
- currentIndex
- array
예제_1
[1,2,3,4,5].reduce((accumulator, currentValue)=>accumulator + currentValue); // initialValue 없는 경우
과정
1번째 호출 accumulator : 1 / currentValue : 2 / currentIndex : 1 return : 3
2번째 호출 accumulator : 3 / currentValue : 3 / currentIndex : 2 return : 6
3번째 호출 accumulator : 6 / currentValue : 4 / currentIndex : 3 return : 10
4번째 호출 accumulator : 10 / currentValue : 5 / currentIndex : 4 return : 15
결과 : 15
예제_2
[1,2,3,4,5].reduce((accumulator, currentValue)=>accumulator + currentValue,0); // initialValue 있는 경우
과정
1번째 호출 accumulator : 0 / currentValue : 1 / currentIndex : 0 return : 1
2번째 호출 accumulator : 1 / currentValue : 2 / currentIndex : 1 return : 3
3번째 호출 accumulator : 3 / currentValue : 3 / currentIndex : 2 return : 6
4번째 호출 accumulator : 6 / currentValue : 4 / currentIndex : 3 return : 10
4번째 호출 accumulator : 10 / currentValue : 5 / currentIndex : 4 return : 15
결과 : 15
예제_3
[[1,2],[3,4],[5,6]].reduce((accumulator, currentValue)=> accumulator.concat(currentValue); );
concat을 이용해서 2차원 배열을 1차원 배열로 변경할 수 있다.
과정
1번째 호출 accumulator : [1,2] / currentValue : [3,4] / currentIndex : 1 return : [1,2,3,4]
2번째 호출 accumulator : [1,2,3,4] / currentValue : [5,6] / currentIndex : 2 return : [1,2,3,4,5,6]
결과 : [1,2,3,4,5,6]
728x90반응형'코딩공부' 카테고리의 다른 글
[Oracle] SQL Function 복습 (0) 2023.02.26 [Javascript] Scope Chain 알아보기 (1) 2022.05.16 Javascript arguments (0) 2022.04.28 [javascript] let과 var의 차이 그리고 호이스팅이란? (0) 2022.04.27 C언어 다이아몬드 키우기 게임 (2) 2022.04.22