Reduce

아토시스·2022년 5월 1일
0

reduce

누산기(accumulator) 및 배열의 각 값(좌에서 우로)에 대해 (누산된) 한 값으로 줄도록 함수를 적용한다.

  1. reduce 이 함수는 Array 객체의 프로토타입에 정의되어 있는 고차함수이다
  2. 가장 중요한 특징은 배열의 값을 한 개로 감소시키는 특징을 가지고 있다.
  3. map,filter,find 함수로 구할 수 있는 기능은 모두 reduce 함수로 구현 가능
  4. 두 번째의 매개변수인 initialValue를 통해서 반환 값을 자유롭게 지정하여 유연하게 상한다.

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

const arr = [1, 2, 3, 4, 5];
const newArr = arr.reduce(function(acc, v, i, arr) {
  return acc + v;
});
// 15

reduce의 가장 큰 특징으로는 첫번째 인자인 accumulator 이다. accumulator 는 return값을 누적하는데, 계속해서 전달받아서 사용할 수도 있다.

두번째 특징은 accumulator의 초기값을 설정할 수 있다는 점이다. optional하며 생략시에는 첫번째 return값이 된다. 아래 예시를 보자.

const arr = [1,2,3,4,5]
const newArr = arr.reduce(function(acc, v, i, arr) {
  return acc + v;
}, 100);
// 115

첫번째 예시와 다르게 초기값 때문에 115라는 값이 나오게 됬다. 어떻게 활용하느냐에 따라 reduce는 강력하고 확장성이 높다. accumulator의 값은 배열이 될수도 있고, object가 될수도 있다.

profile
오늘보다 더 나은 내일이 되길 바라며

0개의 댓글