JS 배열 내장함수, reduce

껌뻑이·2021년 7월 22일
0

JS Built-in functions

목록 보기
1/13
post-thumbnail

reduce

forEach()는 주어진 함수(callback)를 실행 후 하나의 결과값을 반환한다.

고차함수콜백함수를 실행한다.

매개변수

1. callback(accumulator, currentValue, currentIndex, array)

  1. accumulator - 콜백함수의 반환값을 누적한다.
  2. currentValue - 처리할 현재 요소
  3. currentIndex - 처리할 현재 요소 인덱스
  4. array - reduce()를 호출한 배열

2. initialValue

초기값 지정, 지정하지 않으면 배열의 첫번째요소를 사용한다.

예시

1. 배열의 수 모두 더하기

const arr = [1, 2, 3];

const result = arr.reduce((acc, cur, i, arr) => {
  console.log(i, arr);
  return acc + cur;
}, 0);

console.log(result);

// 결과 

0 [ 1, 2, 3 ]
1 [ 1, 2, 3 ]
2 [ 1, 2, 3 ]
6

2. 배열 중 5 이상만 더하기

const arr = [2, 4, 6, 8, 10];

const result = arr.reduce((acc, cur) => {
  if (cur >= 5) acc += cur;
  return acc;
}, 0);

console.log(result);

// 결과

24

3. 배열의 각 a, b, c의 개수를 알아내기

const arr = ["a", "a", "a", "b", "c", "c", "b", "a"];

const result = arr.reduce((acc, cur) => {
  if (acc[cur]) acc[cur] += 1;
  else acc[cur] = 1;
  return acc;
}, {});

console.log(result);

// 결과

{ a: 4, b: 2, c: 2 }

특징

reduce는 배열을 다루기 최고의 함수라서 잘알아두면 좋다!

0개의 댓글