Enjoy Programming

Array.prototype.reduce() && 본문

JavaScript/Vanilla Js

Array.prototype.reduce() &&

LEETAEEON 2021. 6. 15. 12:15

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

 

Array.prototype.reduce() - JavaScript | MDN

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

developer.mozilla.org

금일 챌린지 중에서 배열의 원소들을 모두 합하는걸 써야 했는데

음 이전 파이썬 c언어 할때는 주로 for문 돌려서 연산을 했다~

 

음 찾아보니 자바스크립트에는 reduce라는 좋은 메소드가 있었다. 배열의 각 요소에 대해 주어진 reducer함수를 실행하고

하나의 결과값을 반환한다.

 

리듀서는 네개의 인자를 가진다.

1. accumulator - 누산기 : 콜백의 반환값을 누적한다. 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우 초기 벨류의 값

2. currentValue - 현재 값 : 처리할 현재 요소

3. currentIndex - 현재 인덱스 : 처리할 현재 요소의 인덱스 초기벨류를 제공하면 0, 아니면 1부터 시작

4. src - 원본 배열 - reduce()를 호출 한 배열

 

리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 literal중 유지되므로 결국 최종 결과는 하나의 값이 된다.

 

단순히 더하기를 하는 파이썬이나 c의 sum함수가 아니다. 

음 calculator라고 생각하면되려나? 

첫번째 인자인 accum에 계속 연산값을 누적시키면서 최종적으로 누적된 accum을 반환하는 것으로 보면 되겠다.

 

주의할 점은 initialValue의 지정 여부이니~ 꼭 확인하고 지정 or 미지정 해주자

 

 

'JavaScript > Vanilla Js' 카테고리의 다른 글

MediaRecorder  (0) 2021.06.23
MediaDevices.getUserMedia()  (0) 2021.06.23
class static method & freeze() & values() & keys()  (0) 2021.06.14
[ES6] Promises  (0) 2021.06.12
[ES6] For ...of  (0) 2021.06.11