Javascript/문법

[javascript ES6] reduce(누산기)

슬래기 2022. 4. 23. 16:50

코딩테스트 문제를 접하면서 reduce함수를 활용한 경우가 많았다.

 

reduce는 동사로 줄이다라는 뜻이다.

 

javascript에서는 배열객체에서 사용하는 함수로 배열을 돌려서 줄여간다?

 

예제를 통해서 알아보자

 

Array.reduce()

 

예제 1)  reduce() 메서드는 배열의 각 요소에 대해 주어진 reducer함수를 실행하고, 하나의 결과값을 반환한다.

const array1 = [1, 2, 3, 4];

// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
  (previousValue, currentValue) => previousValue + currentValue,
  initialValue
);

console.log(sumWithInitial);
// expected output: 10

 

리듀서 함수는 네 개의 인자를 가집니다.

  1. 누산기 (acc)
  2. 현재 값 (cur)
  3. 현재 인덱스 (idx)
  4. 원본 배열 (src)

리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.

 

예제2) 값을 누산시켜 보자

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
  return accumulator + currentValue;
}, 10);

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