2023-12-14[TIL]

jenna·2023년 12월 14일
0

TIL/WIL

목록 보기
38/60

reduce 메서드

array1.reduce((a, b) => (a + b))

reduce 메서드의 첫번째 인수인 콜백함수의 a는 누적 값, b 는 현재 값이다.
reduce 를 호출했을 때 return 되는 값은 마지막 최종 누적값이다.

ex)

const array1 = [20, 35, 1, 98, 46, 5];
array1.reduce((a, b) => (a + b)) / array1.length; 

reduce 메서드의 콜백함수에는 총 4개의 인수가 존재

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

1) 1번째 : 초기값 또는 누적값(콜백함수의 이전 반환값)

  • reduce 메서드의 두번째 인수 초기값이 있다면,초기 값은 reduce 메서드의 콜백함수의 첫번째 순회의 누적 값이 된다.
  • 초기값 자리가 비어있다면 배열의 첫번째 요소가 콜백함수의 첫번째 누적 값이 된다.
    (단, reduce 메서드를 호출할 때 초기값을 생략하지 않고 언제나 전달하는 것이 안전한다)

2) 2번째 : 현재값 (reduce 메서드를 호출한 배열의 요소값)
3) 3번째 : index (reduce 메서드를 호출한 배열의 요소값의 index)
4) 4번째 : this (reduce 메서드를 호출할 배열자체)


reduce 메서드 활용

  • 평균 구하기
  • 최대값 구하기
  • 요소의 중복 횟수 구하기
  • 중첩 배열의 평탄화 (Array.prototype.flat 메서드를 사용하는 것이 직관적)
  • 중복 요소 제거 (Array.prototype.filter 메서드를 사용하는 것이 직관적, Set 사용하는것도 좋다.)

참고
https://velog.io/@favorcho/%EB%B0%B0%EC%97%B4%EC%9D%98-reduce-%EB%A9%94%EC%84%9C%EB%93%9C

profile
https://github.com/jennaaaaaaaaa

0개의 댓글