reduce함수

2025. 1. 27. 19:13·frontend/JavaScript

reduce

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

리듀서 함수는 네가지의 인수를 갖는다.

 

1. acc (누산기)

2. cur (현재 값)

3. idx (현재 인덱스)

4. src (원본 배열)

 

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

 arr.reduce(callback[, initialValue])

 

accumulator

누산기는 콜백의 반환값을 누적한다. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값이다.

 

currentValue

처리할 현재 요소

 

currentIndex

처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작.

 

array

reduce() 를 호출한 배열

 

initialValue

callback의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류 발생.

 

reduce() 작동 방식

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

콜백은 4번 호출된다. 

callback accumulator currentValue currentIndex array 반환값
1번째 호출 0 1 1 [0,1,2,3,4] 1
2번째 호출 1 2 2 [0,1,2,3,4] 3
3번째 호출 3 3 3 [0,1,2,3,4] 6
4번째 호출 6 4 4 [0,1,2,3,4] 10

 

 

예제

배열의 모든 값 합산

var sum = [0,1,2,3].reduce(function (accumulator, currentValue)
{
	return accumulator + currentValue;
}, 0);
//sum is 6

화살표 함수로도 작성할 수 있다.

var total = [0,1,2,3].reduce(
	(accumulator, currentValue) => accumulator + currentValue,
  	0,
 );

'frontend > JavaScript' 카테고리의 다른 글

Node.js의 입출력 (readline, fs) 백준  (0) 2025.05.10
함수  (0) 2025.05.09
자바스크립트 중급<객체 메소드, 프로퍼티>  (0) 2025.01.27
자바 스크립트 중급<생성자 함수>  (0) 2025.01.27
소수점 버리기 (정수 변환) 몫 구하기  (0) 2025.01.24
'frontend/JavaScript' 카테고리의 다른 글
  • Node.js의 입출력 (readline, fs) 백준
  • 함수
  • 자바스크립트 중급<객체 메소드, 프로퍼티>
  • 자바 스크립트 중급<생성자 함수>
eun_log
eun_log
  • eun_log
    개발은
    eun_log
  • 전체
    오늘
    어제
    • 분류 전체보기 (75)
      • 코테 (17)
      • CS (6)
        • 자료구조, 알고리즘 (3)
        • 네트워크 (0)
        • 데이터베이스 (2)
        • 운영체제 (0)
      • frontend (32)
        • JavaScript (29)
        • html&css (1)
        • project_study (2)
      • backend (15)
        • Java (15)
      • project (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
eun_log
reduce함수
상단으로

티스토리툴바