자바스크립트 reduce

이일우·2023년 3월 15일

공부하기

목록 보기
17/42
post-thumbnail

Array.prototype.reduce()

자바스크립트 reduce는 배열의 각 요소를 순회하며 콜백 함수가 실행된 값을 누적하여 하나의 값을 반환합니다.

arr.reduce(callback[, initialValue])

callback : 배열의 각 요소에 대해 실행할 함수. 4개의 인자를 받을 수 있습니다.

  • accumulator
    콜백함수의 반환값을 누적합니다.
    콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값입니다.

  • currentValue
    처리할 현재 요소.

  • currentIndex (Optional)
    처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작합니다.

  • array (Optional)
    reduce()를 호출한 배열.

initialValue (Optional)
callback의 최초 호출에서 첫 번째 인수에 제공하는 값입니다.
초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용합니다. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생합니다.

예제

기본 reduce 사용 예제 입니다.

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

const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 15

위의 코드를 그림으로 표현하면 다음과 같습니다.

빈 배열에 reduce를 사용하고, 초기값을 주지 않으면 오류가 발생합니다.

const emptyArray = [];

const sumOfEmptyArray = emptyArray.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
});

console.log(sumOfEmptyArray); // TypeError: Reduce of empty array with no initial value

참고자료 출처

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

https://tocomo.tistory.com/26

0개의 댓글