Learn reduce()

Junghan Lee·2023년 5월 5일
0

Learnd in Camp

목록 보기
41/48

reduce() 메서드는 배열의 각 요소에 대해 콜백 함수를 실행하고, 콜백 함수에서 반환된 값을 누적하여 하나의 결과값을 반환한다. 이를 통해 배열의 모든 요소를 사용하여 하나의 값으로 축소할 수 있다.

reduce() 메서드는 다음과 같은 구문을 가진다.

arr.reduce(callback[, initialValue])

callback : 배열 요소마다 호출될 함수, 다음 세 가지 인수를 가진다.
1) accumulator(acc) : 누적값, initialValue가 제공된 경우 첫번째 acc의 값은 initialValue와 같다. 그렇지 않으면 첫 번째 acc값은 배열의 첫 번째 요소와 같다.
2) currentValue(cur) : 현재 배열 요소
3) currentIndex : 현재 배열 요소의 인덱스(선택적)

사용 예시 1)

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(sum); // 15

위 예시에서, reduce() 메서드는 accumulator 초기값을 제공하지 않았기 때문에 첫 번째 호출에서 accumulator 값은 1이 되고, currentValue 값은 2가 된다. 따라서 accumulator와 currentValue를 더한 3이 반환된다. 두 번째 호출에서는 accumulator 값이 3이 되고, currentValue 값이 3이 되므로, accumulator와 currentValue를 더한 6이 반환된다. 이 과정을 모든 요소에 대해 반복하면, 배열의 모든 요소를 더한 총합인 15가 반환된다.

사용 예시 2) 배열의 요소를 합산하면서 요소가 몇 개인지 카운트하는 코드

const numbers = [1, 2, 3, 4, 5];
const result = numbers.reduce((accumulator, currentValue, index) => {
  const sum = accumulator.sum + currentValue;
  const count = accumulator.count + 1;
  return {
    sum,
    count,
    average: sum / count,
  };
}, { sum: 0, count: 0 });
console.log(result.average); // 3
profile
Strive for greatness

0개의 댓글