[JavaScript] reduce 함수

Rachaen·2022년 12월 30일
0

Array.prototype.reduce()란?

배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환하는 함수

Syntax

arr.reduce(callback(accumulator, currentValue, index, array), initialValue)

Parameter

  • callback
    • accumulator
      • 콜백의 반환값을 누적
        • callback의 최초 호출시 initialValue를 설정한 경우 initialValue로 값으로 초기화, initialValue가 없을 경우 arr의 0번째 인덱스 값으로 초기화
    • currentValue
      • 현재 요소의 값
        • callback의 최초 호출시 initialValue를 설정한 경우 array의 0번째 인덱스, initialValue가 없을 경우 array의 1번째 인덱스 값
    • index(Optional)
      • 현재 요소의 인덱스
        • callback의 최초 호출시 initialValue를 설정한 경우 0, initialValue가 없을 경우 1
    • array(Optional)
      • reduce 함수를 호출한 배열
  • initialValue(Optional)
    - callback의 최초 호출시 accumulator 초기값

예제

const array = ['a', 'b', 'c', 'd', 'e'];
const result = array.reduce((prev, curr, index, array) => {
  console.log(`prev: ${prev},
  curr: ${curr},
  index: ${index},
  array: ${array}`);
  return prev + curr;
});
/* 초기값 설정하지 않은 경우
prev: a, curr: b, index: 1, array: a,b,c,d,e
prev: ab, curr: c, index: 2, array: a,b,c,d,e
prev: abc, curr: d, index: 3, array: a,b,c,d,e
prev: abcd, curr: e, index: 4, array: a,b,c,d,e
result: abcde
*/ 
const array = ['a', 'b', 'c', 'd', 'e'];
const result = array.reduce((prev, curr, index, array) => {
  console.log(`prev: ${prev},
  curr: ${curr},
  index: ${index},
  array: ${array}`);
    return prev + curr;
  }, '');
/* 초기값 설정한 경우
  prev: , curr: a, index: 0, array: a,b,c,d,e
  prev: a, curr: b, index: 1, array: a,b,c,d,e
  prev: ab, curr: c, index: 2, array: a,b,c,d,e
  prev: abc, curr: d, index: 3, array: a,b,c,d,e
  prev: abcd, curr: e, index: 4, array: a,b,c,d,e
  result: abcde
*/

MDN Array.prototype.reduce()
profile
개발을 잘하자!

0개의 댓글