우선 mdn을 들어가보자
이런 형식을 가진다고 하는데 온통 영어투성이라 잘 와닿지가 않는다.
쉽게 정리해보면,
array.reduce((a,b)=>(a + b, c))
인 것이다.
여기서
a = previousValue(accumulator)
b= currentValue
c= initialValue(optional)
참고initialValue를 제공하지 않으면, reduce()는 인덱스 1부터 시작해 콜백 함수를 실행하고 첫 번째 인덱스는 건너 뜁니다. initialValue를 제공하면 인덱스 0에서 시작합니다.(즉 currentvalue가 인덱스0에서 시작)
만약 reduce() 함수 호출에서 initialValue를 제공한 경우, accumulator는 initialValue와 같고 currentValue는 배열의 첫 번째 값과 같습니다.
initialValue를 제공하지 않았다면, accumulator는 배열의 첫 번째 값과 같고 currentValue는 두 번째와 같습니다.
즉 previousValue(accumulator)는 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값이다.
예를들어, initialValue를 10으로 설정한 경우 10+currentValue(배열의 첫번째값)로 계산이 된다.
initialValue가 없을 경우,
array.reduce((array[0],array[1])=>(array[0] + array[1]))
인 셈이며,
사진과 같이 돌게 된다.
배열안에 값을 모두 더하는 다른 방법으로는 foreach가 있다.