[JavaScript] Array.reduce()

Suvina·2025년 1월 9일

JavaScript

목록 보기
24/28
post-thumbnail

각 요소를 순회하며 누적값을 계산

array.reduce(callback, initialValue);
  • callback: 각 배열 요소에 대해 실행할 함수
    • callback 함수는 4개의 인자를 가진다.
      1. accumulator: 이전 함수 호출의 반환값
      2. currentValue: 현재 처리 중인 배열 요소
      3. currentIndex: 현재 처리 중인 배열 요소의 인덱스(선택 사항)
      4. array: reduce가 호출된 원본 배열(선택 사항)
  • initialValue: accumulator의 초기값. 생략하면 배열의 첫 번째 요소가 초기값으로 사용된다. (사용 권장)

동작 과정

  1. 배열의 첫 번째 요소부터 마지막 요소까지 callback을 호출하면서 누적값을 업데이트한다.
  2. 최종적으로 하나의 값을 반환한다.

예제 1: 배열 요소 합산하기

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 15
// 0 + 1 = 1
// 1 + 2 = 3
// 3 + 3 = 6
// 6 + 4 = 10
// 10 + 5 = 15

예제 2 : 배열의 최대값 찾기

  • 배열의 모든 요소를 순회함 ✅
const numbers = [3, 7, 2, 9, 5];

const max = numbers.reduce((accumulator, currentValue) => {
  return accumulator > currentValue ? accumulator : currentValue;
});

console.log(max); // 9

// 3 vs 7 return 7
// 7 vs 2 return 7
// 7 vs 9 return 9
// 9 vs 5 reuturn 9

🎆 다양한 패턴(합산, 그룹화, 필터링, 맵핑 등)에 활용할 수 있다

profile
개인공부

0개의 댓글