reduce

이재홍·2022년 6월 28일
0
post-thumbnail

https://miiingo.tistory.com/365https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

https://www.youtube.com/watch?v=g1C40tDP0Bk&ab_channel=ProgrammingwithMosh


Reduce

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

리듀서 함수는 네 개의 인자를 가짐

누산기 (acc)
현재 값 (cur)
현재 인덱스 (idx)
원본 배열 (src)

사용방법

누산기가 포함되어 있기 때문에, 배열의 각 요소엥 대해 함수를 실행하고 누적된 값을 출력할 때 용이하다.
가장 기본적인 예제로는 모든 배열의 합을 구하는 경우가 있음

const arr = [1, 2, 3, 4, 5];
const result = arr.reduce((acc, cur, idx) => { return acc += cur; }, 0);
console.log(result);  // 15

const arr2 = [1, 2, 3, 4, 5];
const result2 = arr2.reduce((acc, cur, idx) => { return acc += cur; }, 10);
console.log(result2);  // 25

초기값을 0으로 둔 acc의 초기값은 0이되고, 배열의 첫 번째 요소부터 acc에 자신의 값인 cur을 더해간다.
reduce()를 실행하고 난 뒤, 최종적으로 반환되는 값은 0+1+2+3+4+5 인 15이다.

초기값을 10으로 둔다면, acc의 초기값은 10이 되고, 배열의 첫 번째 요소부터 acc에 자신의 값인 cur을 더해가므로
최종적으로 반환되는 값은 10 + 1 + 2 + 3 + 4 + 5 인 25이다.

Array의 모든 요소들에 대해 체크하고 누적된 값을 출력하고 싶을 때 용이한 것 같다.
for문이나 count를 위한 별도의 변수를 선언하지 않고도 바로 결과가 출력되기 때문에 코드가 훨씬 깔끔해지는 것 같다.

0개의 댓글