본문 바로가기
CodeStates/└ JavaScript(Pre)

reduce

by Dream_World 2020. 6. 20.

reduce [immutable] - 불변

  • arr.reduce(callback[, initialValue])
  • 리턴값이 필요

  • 다음 리듀서 호출 시, 첫번째 파라미터로 전달

  • 함수를 실행하고, 하나의 결과값을 반환

 

매개변수

callback 배열의 각 요소에 대해 실행할 함수

  •   accumulator 누산기accmulator는 콜백의 반환값을 누적. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출

  •   initialValue를 제공한 경우에는 initialValue의 값

  •   currentValue 처리할 현재 요소

  •   currentIndex 처리할 현재 요소의 인덱스

  •   initialValue를 제공한 경우 0, 아니면 1부터 시작

  •   array reduce()를 호출한 배열

initialValue callback의 최초 호출에서 첫 번째 인수에 제공하는 값

  •   초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용

  •   빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생

 

리턴 값

  • 누적 계산의 결과 값

 

reduce의 작동 원리 : 배열 축소

  • 배열에서 문자열로

  • 배열에서 숫자로

  • 배열에서 객체로

 

reduce 실행

let number = [1, 2, 3, 4, 5];

numbers = number.reduce(function(acc, value, index) {
  console.log(acc, value, index);
  return acc + value;
});
/*==================================================*/
// 결과 값

 1 2 1
 3 3 2
 6 4 3
10 5 4
15

 

호출 횟수 accumulator currentValue currentIndex 리턴 값
1번째 호출 1 2 1 3
2번째 호출 3 3 2 6
3번째 호출 6 4 3 10
4번째 호출 10 5 4 15

최종 리턴 값 : 15

 

참조 사이트 : MDN reduce

 

Array.prototype.reduce()

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

developer.mozilla.org

 

'CodeStates > └ JavaScript(Pre)' 카테고리의 다른 글

재귀 함수  (0) 2020.06.22
배열 다루기  (0) 2020.06.22
filter  (0) 2020.06.20
map  (0) 2020.06.20
for Each  (0) 2020.06.20

댓글