본문 바로가기
프론트엔드/JavaScript

[ 자바스크립트 ] reduce() 함수 이해하기

by CODESIGN 2022. 9. 13.

구문


arr.reduce(callback[, initialValue])
배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값);

 

 

매개변수


  • callback - 배열의 각 요소에 대해 실행할 함수
    • 4가지의 인수를 가진다.
      • accumulator(acc) - callback함수의 반환 값을 누적
      • currentValue(cur) - 배열의 현재 요소
      • index(Optional) - 배열의 현재 요소의 인덱스
      • array(Optional) - 호출한 배열
    • callback함수의 반환 값은 accumulator에 할당되고 순회중 계속 누적되어 최종적으로 하나의 값을 반환한다.
  • initialValue(Optional)
    • 최초 callback함수 실행 시 accumulator 인수에 제공되는 값, 초기값을 제공하지 않을 경우 배열의 첫 번째 요소를 사용하고, 빈 배열에서 초기값이 없을 경우 에러가 발생한다.

 

 

예제


const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const sum = numbers.reduce((accumulator, currentNumber) => accumulator + currentNumber);
console.log(sum); // 결과: 55

 

쉽게 말해 (reduce ((최종 값(=누적 값), 현재 더해질 수)))이다.

 

 

 

reduce 연습 문제 모음


https://codesign.tistory.com/174

 

[ 프로그래머스 / JavaScript ] 자릿수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

https://codesign.tistory.com/175

 

[ 프로그래머스 / JavaScript ] 평균 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/12944 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

https://codesign.tistory.com/161

 

[ 프로그래머스 / JavaScript ] 음양 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

https://codesign.tistory.com/162

 

[ 프로그래머스 / JavaScript ] 내적

https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

https://codesign.tistory.com/160

 

[ 프로그래머스 / JavaScript ] [ 월간 코드 챌린지 시즌3 ] 없는 숫자 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

https://codesign.tistory.com/282

 

[ 프로그래머스 / JavaScript ] 예산

https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

codesign.tistory.com

 

 

참고


 

Array.prototype.reduce() - JavaScript | MDN

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

developer.mozilla.org

 

 

댓글