JS 문법 - reduce

wkawhaRo·2025년 6월 7일
0

javascript

목록 보기
1/1

JavaScript의 reduce는 배열의 모든 요소를 하나로 축약(누적) 할 때 사용하는 고차 함수. 배열의 합, 곱, 평균, 최대값 등을 구할 때 자주 사용


✅ 기본 문법

array.reduce((accumulator, currentValue, currentIndex, array) => {
  // return 새로운 accumulator
}, initialValue);
  • accumulator: 이전 반복에서 리턴된 값 (누적값)
  • currentValue: 현재 요소
  • initialValue: accumulator의 초기값 (생략 가능하지만 보통 넣는 게 안전)

🔍 예제들

1. 배열의 합

const nums = [1, 2, 3, 4, 5];
const sum = nums.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15

2. 배열의 곱

const nums = [1, 2, 3, 4];
const product = nums.reduce((acc, cur) => acc * cur, 1);
console.log(product); // 24

3. 최댓값 구하기

const nums = [5, 2, 9, 1];
const max = nums.reduce((acc, cur) => (acc > cur ? acc : cur));
console.log(max); // 9

4. 객체 배열에서 총합 구하기

const items = [
  { name: "apple", price: 1000 },
  { name: "banana", price: 500 },
  { name: "cherry", price: 2000 }
];

const total = items.reduce((sum, item) => sum + item.price, 0);
console.log(total); // 3500

💡 자주 하는 실수

  • initialValue를 생략하면, 첫 번째 요소가 acc로 자동 설정되고 루프는 두 번째 요소부터 시작
  • 비어 있는 배열에 reduce를 쓰면 오류 발생. 그래서 항상 initialValue를 넣는 게 안전

관련문제

프로그래머스 - 배열 두 배 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/120809

const solution = (numbers) => {
  return numbers.reduce((number, element) => [...number, element*2], []);
  // numbers.map((element)=> element*2)); 도 가능!
}
profile
1일 1백준을 목표로

0개의 댓글