JS reduce

정현승·2024년 10월 23일

reduce 메서드는 JavaScript 배열의 각 요소에 대해 제공된 함수를 실행하고, 그 결과를 누적하여 단일 값을 반환하는 매우 유용한 메서드입니다.
reduce는 배열을 순회하면서 값을 집계하거나 변환하는 데 자주 사용됩니다.

array.reduce(callback, initialValue);
  • callback: 배열의 각 요소에 대해 호출되는 함수입니다. 이 함수는 다음과 같은 매개변수를 가집니다:

    • accumulator: 누적 값으로, 이전 호출에서 반환된 값입니다. 초기 호출 시 initialValue로 설정됩니다.
    • currentValue: 현재 배열 요소입니다.
    • currentIndex (선택적): 현재 배열 요소의 인덱스입니다.
    • array (선택적): reduce가 호출된 배열입니다.
    • initialValue: 첫 번째 호출 시 accumulator의 초기값입니다. 이 값을 제공하지 않으면 배열의 첫 번째 요소가 초기값으로 사용됩니다.

배열의 합 구하기

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

const sum = numbers.reduce((acc, current) => acc + current, 0);

console.log(sum); // 15

배열의 객체를 사용하여 특정 값 집계하기

const items = [
    { name: 'apple', quantity: 2 },
    { name: 'banana', quantity: 5 },
    { name: 'orange', quantity: 3 }
];

const totalQuantity = items.reduce((acc, item) => acc + item.quantity, 0);

console.log(totalQuantity); // 10

  • reduce는 배열을 한 번만 순회하여 단일 값으로 변환하므로 효율적입니다.
  • 배열의 변환, 집계 및 누적 작업을 간단하게 수행할 수 있습니다.
  • 초기값을 제공하는 것이 좋으며, 그렇지 않으면 배열이 비어있을 때 오류가 발생할 수 있습니다.

0개의 댓글