Javascript reduce() 함수

choi yh·2023년 2월 1일
0

Reduce함수가 익숙하지 않아서 한번 정리해야겠다.

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

덧셈

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

초깃값을 정해주지 않으면 자동으로 0이된다.

result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
}); /// 자동으로 초깃값 지정
// 1 2 1
// 3 3 2
result; // 6 

map

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

filter

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

배열의 각 요소들의 갯수 구하기

const nums = ['one', 'one', 'one', 'one', 'two',
   'two', 'two', 'two', 'three', 'three', 'three'];

const result = nums.reduce((acc, cur, i) => {

  acc[cur] = (acc[cur] || 0) + 1;

  return acc;
}, {});

console.log(result);
/// one : 5, two: 4, three:3

반복되는 모든 것에 reduce를 사용할 수 있다.

profile
더 높은곳으로 올라가기

0개의 댓글