[Javascript] reduce, reduceRight 메서드

devMag 개발 블로그·2022년 1월 14일
0

Javascript

목록 보기
2/13

참조
Zerocho님의 reduce, map 활용하기 글
MDN Docs
RATSENO님의 map(), reduce() 함수 글

Array.prototype.reduce(), Array.prototype.reduceRight()

배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값)

배열.reduceRight((누적값, 현잣값, 인덱스, 요소) => { return 결과 }, 초깃값}
  • 매개변수
    • 누적값 : 콜백의 반환값을 누적한다. 콜백의 이전 반환값 혹은 첫호출이면서 초깃값을 제공한 경우에 초깃값이 노적값이 된다.
    • 현잿값 : 처리해야할 현재 요소
    • 인덱스 (optional) : 처리할 현잿값 요소의 인덱스. 초깃값을 제공할 경우 0부터이고 아니라면 0부터 시작한다.
    • 초깃값 (optional) : 최초 호출 시 첫 인수에 제공하는 값. 초깃값을 주지 않으면 배열 인자의 첫번째 값을 사용한다. 빈 배열에서 초깃값 없이 reduce()를 호출하면 에러가 발생한다.
    • 배열 (optional) : reduce() 를 호출한 배열
  • reduce 메서드는 Array를 하나의 단일 값으로 줄이는 용도로 쓰인다.
  • reduceRight() 메서드는 reduce와 배열의 값들을 내침차순으로 접근한다는 부분만 다를뿐 원리는 똑같다.

덧셈 예시

let arr = [1, 2, 3];

arr.reduce((acc, cur, i) => {return acc + cur;}, 0)
arr.reduce((acc, cur, i) => {return acc + cur;})
// 둘 다 결과값은 6
  • 초깃값이 있을 시
accacc + curi
00 + 10
11 + 21
33 + 32
  • 초깃값이 없을 시
accacc + curi
11 + 21
33 + 32

객체 배열에서 값 합산

let list = [{ x : 1 }, { x : 2 }, { x : 3 }];
let sum = list.reduce((acc, cur) => { return acc + cur.x; }, 0)

console.log(sum)
// 6
accacc + curi
00 + 10
11 + 21
33 + 32
profile
최근 공부 내용 정리 Notion Link : https://western-hub-b8a.notion.site/Study-5f096d07f23b4676a294b2a2c62151b7

0개의 댓글