Hyebin‘s blog
article thumbnail

reduce 메서드

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

 

reduce 인자

누적 값(acc)

현재 값(cur)

현재 인덱스 (curIndex)

원본 배열(arr)

 

 

누적값이기 때문에 다양하게 활용할 수 있다.

const oneTwoThree = [1, 2, 3];

result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
}, 0);
// 0 1 0
// 1 2 1
// 3 3 2
result; // 6

누적된값 + 현재값을 더하면 된다!

acc(누적값)이 초깃값인 0부터 시작해서 return하는대로 누적되는 것을 볼 수 있다.

초깃값을 적어주지 않으면 자동으로 초깃값이 0번째 인덱스의 값이 된다

 

map으로 reduce 만들기

result = oneTwoThree.reduce((acc, cur) => {
  acc.push(cur % 2 ? '홀수' : '짝수');
  return acc;
}, []);
result; // ['홀수', '짝수', '홀수']

 

 

reduce 활용  (홀수만 필터링 하는 코드)

const oneTwoThree = [1, 2, 3];

result = oneTwoThree.reduce((acc, cur) => {
  if (cur % 2) acc.push(cur); // acc에 cur 값을 push한다.
  return acc;
}, []);
result; // [1, 3]

현재값이 2의 배수면 누적값에 현재값을 넣고, 누적된 값을 리턴한다.

 

 

 

profile

Hyebin‘s blog

@hyebin Lee

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그