[JS study] reduce

재오·2023년 3월 30일
1

JavaScript

목록 보기
29/48
post-thumbnail

그동안 배열에 있는 수를 누적해서 계산할 때(누산) 전역변수 sum을 선언하고 for 반복문을 통해 누적 계산하였다. 하지만 이 방법은 메모리를 많이 잡아먹는 단점이 있다. 이를 방지하기 위해 reduce 함수를 사용해보자.

기본적인 형태

reduce 함수는 두 개의 인자를 갖는다. 첫번째는 누적되는 값, 즉 최종적으로 출력되는 값인 acc가 있고 두번째는 현재 돌고 있는 요소인 cur가 있다.

const numbers = [4,3,2,1];
let sum = numbers.reduce((acc, cur) => acc + cur); // 10

기본적인 형태에 옵션 추가한 형태

2개의 인자를 갖고 여기에 초기값을 넣어준 형태도 만들 수 있다.

const numbers = [4,3,2,1];
let sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10

4개의 인자와 초기값을 추가한 형태

평균을 구하는 코드를 짤 때 매우 유용하다. 세번째 인자로는 index 값을 가지고 네번째 인자로는 array를 갖는다.

const avg = numbers.reduce((acc, cur, index, arr) => {
  if(index === arr.length -1){
    return (acc + cur) / arr.length;
  }
  return acc + cur;
},0);

console.log(avg);
profile
블로그 이전했습니다

1개의 댓글

comment-user-thumbnail
2023년 4월 3일

.

답글 달기