JS 기초 : 배열 내장 함수 reduce

0andme·2021년 8월 5일
0

JavaScript

목록 보기
15/16

◼ reduce

MDN-reduce

  • 파라미터에 주어진 리듀서 함수를 각 배열의 요소에 대해 실행하고 하나의 결과를 반환한다.
  • 배열명.reduce(callback[, initialValue ]) 형태로 작성한다.
  • callback : 각 요소들이 수행할 함수. 네개의 인자를 작성할 수 있다.
    • Accumulator (acc) 누산기
    • Current Value 현재 값
    • Current Index (Optional) 현재 인덱스
    • Source Array (Optional) 원본 배열
  • initialValue (Optional)
    배열의 최초 호출시 acc에 저장하는 값. 없으면 배열의 첫번째 요소를 초기값으로 사용한다.
  • initialValue가 있으면 Current Index는 0부터 시작하고 initialValue가 없으면 Current Index는 1부터 시작한다. (initialValue가 없으면 배열의 0번째 값을 이미 acc에 넣었으니 배열의 인덱스는 1이다)
  • 리듀서 함수의 return 값이 acc인자로 저장된다.

    작동 방식을 예제로 살펴보자


◼ 예제

◻ 배열의 가장 큰 수 찾기 - function

const numbers = [1, 20, 3, 4, 5];

const maxNum = numbers.reduce(function (previous, current) {
  if (current > previous) {
    return current;
  } else return previous;
});
console.log(maxNum); // 20

◻ 배열의 가장 큰 수 찾기 - 화살표 함수

const maxNum2 = numbers.reduce((previous, current) => {
  if (current > previous) {
    return current;
  } else return previous;
});
console.log(maxNum2);

◼ 정리

  • reduce()의 파라미터로는 리듀서 함수초기값이 있다.
  • 리듀서 함수의 파라미터에는 4가지가 있으며 필수적으로 값을 저장해나갈 변수(acc 누산기)와 현재 값을 저장할 변수(current)가 있어야한다
  • reducer 함수의 리턴 값은 누산기에 저장된다

profile
개발이 하고 싶어? 정말 하고 싶긴 한거야?

0개의 댓글