09_reduce
코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.
구문
자바스크립트의 reduce() 함수는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환하는 강력한 배열 메서드입니다.
기본 구문
arr.reduce((accumulator, currentValue, currentIndex, array) => {
// 리듀서 함수 로직
}, initialValue)
- 기본적인 숫자 합계 계산:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, current) => acc + current, 0);
console.log(sum); // 15
- 객체 배열에서 속성 값 합산:
const products = [
{ name: '사과', price: 1000 },
{ name: '바나나', price: 1500 },
{ name: '오렌지', price: 2000 }
];
const totalPrice = products.reduce((acc, product) => acc + product.price, 0);
console.log(totalPrice); // 4500
- 배열을 객체로 변환:
const fruits = ['사과', '바나나', '사과', '오렌지', '바나나'];
const fruitCount = fruits.reduce((acc, fruit) => {
acc[fruit] = (acc[fruit] || 0) + 1;
return acc;
}, {});
console.log(fruitCount);
// { '사과': 2, '바나나': 2, '오렌지': 1 }
reduce() 함수의 매개변수:
accumulator: 누산기, 누적된 계산 결과currentValue: 현재 처리되는 배열 요소currentIndex: 현재 요소의 인덱스 (선택적)array: 원본 배열 (선택적) 중요한 특징:- 초기값(initialValue)을 제공하지 않으면, 배열의 첫 번째 요소가 초기값이 됩니다.
- 빈 배열에서 초기값 없이 호출하면 오류가 발생합니다.
reduce()는 배열을 단일 값으로 줄이거나 복잡한 변환을 수행하는 데 매우 유용한 메서드입니다. 합계 계산, 평균 구하기, 객체 그룹화 등 다양한 상황에서 활용할 수 있습니다.