[].reduce(function(accumulator, currentValue, currentIndex, array){ 사용할 내용들 },initialValue)
accumulator = 누산기라고 하는데, 나는 누적값 이라고 부른다.
currentValue= 영어그대로 현재값이다.
currentIndex= 영어그대로 현재인덱스이다.
array = 현재 사용중인 [] <= 빈 배열을 말한다.
initialValue = 내가 이해한바로는 accumulator(누적값)의 초기값을 말한다.
let array = [0,1,2,3,4]
array.reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
});
MDN에 첫번째로 나와있는 예제이다.
똑똑한분들은 바로 이해했겠지만 나는 갸우뚱 했던거 같다.
내가 이해한 reduce의 기능은 array 를 자동적으로 0번째인덱스부터 - > 마지막 인덱스까지 한번씩 실행하면서 그 값과 인덱스등을 유용하게 사용하려고 만들어 놓은 Method 라고 이해 했다.
자세히 보면 initialValue가 적혀 있지 않은데, 그럴경우엔 배열의0번째 값을 사용한다.
그런고로 accumulator(누적값의) 초기값은 = 배열의 0번째 값인 0 으로 시작하며, 위의 예제를 보면 Return 값은 accumulator(누적값) + 현재값이고, initialValue(초기값)가없는경우 실행은 4번 될 예정이다.
0+1 = 1
1+2 = 3
3+3 = 6
6+4 = 10
이런식으로 누적값과 현재값이 작동하며 결국엔 배열안에 있는 모든 값의 합을 반환한다.
그렇지만 이런 단순한 배열의 총 합구하기 같은 것 말고도
나도 아직 이 활용도를 다 익히진 못하였지만
천천히 하다보면 익혀지리라 믿는다.