reduce
는 Javascript 배열의 메서드 중 하나로, 배열의 각 요소들을 순회하면서 누적값을 계산하는 기능을 제공한다.
reduce
메서드는 배열을 순회하면서 요소들을 하나씩 처리하여 누적된 값을 반환한다.
arr.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
callback
: 각 요소를 처리하는 함수로, 4개의 매개변수를 받는다.accumulator
: 누적 값이다. 이 값을 콜백 함수의 리턴 값이나 초기값으로 시작한다.currentValue
: 현재 처리되는 요소의 값currentIndex
: 현재 처리되는 요소의 인덱스 -> optionalarray
: reduce
가 호출되는 배열 -> optionalinitialValue
: 누적값의 초기값으로, 첫 번째 요소를 처리하기 전에 이 값을 사용한다. (배열의 첫 번째 요소가 초기값) -> optionalreduce
메서드는 배열의 요소들을 순회하면서 콜백 함수를 호출하며, 각 요소를 처리하여 누적된 값을 계산한다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // 15 (1 + 2 + 3 + 4 + 5)
reduce
는 배열을 다양한 방식으로 처리하고, 누적된 값을 계산할 때 유용하게 사용할 수 있다. reduce
를 사용하지 않더라도 누적값을 계산할 수 있지만 코드가 늘어난다.
reduce
를 사용하지 않은 예를 들면
const numbers = [1, 2, 3, 4, 5];
let sum = 0; // 누적값을 지정할 변수, 초기값은 0
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i]; // 각 요소를 누적값에 더해줌.
}
console.log(sum); // 15 (1 + 2 + 3 + 4 + 5)
이렇게 for
문을 사용해서 누적값을 계산할 수 있다. 하지만 reduce
가 더 간결하고, 함수형 프로그래밍적인 스타일을 지향한다면 reduce
를 사용하는 것이 더 좋다.