항해99_6기_TIL

항해99 👩‍💻77일차 TIL

merrytang 2022. 5. 22. 22:24

reduce함수 

callback function

1. accumulator : callback 함수의 반환값을 누적한다. 

2. currentValue : 배열의 현재 요소 

3. index(Optional) : 배열의 현재 요소의 인덱스

4. array(Optional) : 호출한 배열

=> callback 함수의 반환 값은 acc에 할당되고 순회 중 계속 누적되어 최종적으로 하나의 값을 반환한다. 

initialValue(Optional)

=> 최초 callback함수 실행 시 acc 인수에 제공되는 값이다. 초기값을 제공하지 않을 경우 배열의 첫 번째 요소를 사용하고, 빈 비열에서 초기값이 없을 경우 에러가 발생한다.

 

예제

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
  return accumulator + currentValue;
});

아래와 같이 화살표 함수로 나타낼 수도 있다. 

[0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr );

콜백은 4번 호출된다. 그리고 반환하는 값으로는 마지막 콜백 호출의 반환값 10 을 사용한다. 

MDN에서 따옴

 

reduce() 의 두 번째 인수로 초기값을 제공하는 경우 아래와 같은 결과가 나온다. 

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
  return accumulator + currentValue;
}, 10);

MDN에서 따옴

 

참조한 곳

https://tocomo.tistory.com/26

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