📗 JavaScript reduce 메서드 복습
📎 reduce 정의
reduce
의 형태:
arr.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
callback
: 이 함수는 배열의 각 요소에 대해 호출되며, 네 가지 매개변수를 받음
accumulator
: 누적값으로, 이전 콜백 호출에서 반환된 값, 초기값이 제공되지 않았다면 배열의 첫 번째 요소가 초기값
currentValue
: 현재 순회 중인 배열 요소의 값
currentIndex
: 현재 순회 중인 배열 요소의 인덱스
array
: reduce를 호출한 배열 자체
initialValue (선택사항)
: 누적값의 초기값으로 사용, 이 매개변수를 생략하면 배열의 첫 번째 요소가 초기값으로 사용
📎 reduce 예제
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum);
const numbers = [10, 5, 8, 20, 3];
const max = numbers.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue));
console.log(max);
const words = ["Hello", "World", "JavaScript"];
const combined = words.reduce((accumulator, currentValue) => accumulator + " " + currentValue);
console.log(combined);
✏️ 포인트
- arr.reduce()는 배열을 반복하면서 복잡한 누적 연산을 수행할 때 유용
- 주의할 점은 초기값을 제공하지 않을 때 배열의 첫 번째 요소가 초기값이 되므로, 초기값을 제공하지 않을 때 배열이 비어 있으면 오류가 발생할 수 있음