320x100
320x100

개요

: 배열의 각 요소에 대해 주어진 reducer 함수를 실행하고 하나의 결과 값을 반환

: map()이나 filter() 등의 함수의 기능을 reduce() 하나로 가능

: 별도의 변수를 선언하지 않고도 결과가 출력됨

const result = arr.reduce((acc, cur, idx, arr) => {
	// callback function
}, initialValue);

- acc (accumulator)

: 누산기로서 콜백 함수의 반환 값을 누적

: 콜백의 이전 반환 값 또는 콜백의 첫 번째 반환 값으로 시작

: initialValue를 제공한 경우에는 initialValue에 연산 결과를 누적

 

- cur (currentValue)

: reduce 함수안에서 1회전당 처리할 현재요소

 

- idx (currentIndex) / optional

: reduce 함수안에서 1회전당 처리할 현재요소의 인덱스

: initialValue를 제공한 경우 0, 아닌 경우 1부터 시작

 

- arr (array) / optional

: reduce()를 호출한 원 배열

 

- initialValue / optional

: 콜백의 최초 호출에서 첫 번째 인수에 제공하는 값

: 제공하지 않으면 배열의 첫 번째 요소를 사용

: 빈 배열에서 초기 값 없이 reduce()를 호출할 경우 오류 발생

 

 

 

 

예제1

const arr = [1, 2, 3, 4, 5];
const result = arr.reduce((acc, cur, idx) => { return acc += cur; }, 0);
console.log(result);  // 15

const arr2 = [1, 2, 3, 4, 5];
const result2 = arr2.reduce((acc, cur, idx) => { return acc += cur; }, 10);
console.log(result2);  // 25

 

 

 

예제2

const numbers = [2, -5, -123, 59, -5480, 24, 0, -69, 349, 3];
const result = numbers.reduce((acc, cur, idx) => { 
  if(cur < 0){
    // 처리할 현재 요소가 음수일 경우
    acc[0]++;
  }
  else if(cur > 0){
    // 처리할 현재 요소가 양수일 경우
    acc[1]++;
  }
  return acc;
 }, [0,0]);
console.log(result);  // [4, 5]

 

 

 

 

 

Refference

 

[Node.js] javascript: Array.reduce() 사용 방법 정리

Array.reduce() ● 기본 정리 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. arr.reduce(callback[, initialValue]) callback : 배열의 각 요소에 대..

miiingo.tistory.com

 

300x250
728x90