본문 바로가기
JS/JavaScript 강의

52. reduce Method

by 박기린 2022. 12. 16.

안녕하세요. 박기린 입니다.

Array의 메소드인 reduce()에 대해 알아보겠습니다.

 

 

Array.prototype.reduce()

const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
const balance = movements.reduce(function(acc, cur, i, arr) {
  console.log(`Iteration ${i}: ${acc}`);
  return acc + cur;
}, 0);
console.log(balance); // 3840

 

Array이름.reduce( 콜백함수, 콜백함수에 들어갈 acc<accumulator>의 초기값 );
만약 초기값을 설정하지 않는다면, Array의 첫 번째 element를 초기값으로 삼습니다.

-> 콜백함수 구성
function( acc, 현재 element, 현재 element의 index, reduce가 적용되는 Array 원본) {
   return ( acc에 무언가를 담는 방식이 적힌 식  )
}

acc는 accumulator(누산기)의 줄임말입니다. acc는 콜백함수가 return 하는 값을 계속 담습니다.

reduce()는 Array의 모든 elements를 누산한 후, acc에 담겨진 값을 return한다.

 

 

 

실행결과물

 

 

 

 

만약 for 문으로 만든다면?

const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];

let balance = 0;
for(const mov of movements) balance += mov;
console.log(balance);

실행결과물

 

 


reduce()를 사용한 또 다른 예시 : Maximum value

const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];

const max = movements.reduce((acc, mov) => {
  if (acc > mov) return acc;
  else return mov;
}, movements[0]);
console.log(max); // 3000

Array의 elements 중 최대값을 찾을 때에도 reduce를 사용할 수 있습니다.

 

 

 

실행결과물

 

반응형

'JS > JavaScript 강의' 카테고리의 다른 글

54. sorting Arrays  (0) 2022.12.21
53. includes/some/every  (0) 2022.12.20
51. filter Method  (0) 2022.12.15
50. map Method  (2) 2022.12.14
[JS] 49. forEach Method  (0) 2022.12.09