Javascript/문법
[javascript ES6] reduce(누산기)
슬래기
2022. 4. 23. 16:50
코딩테스트 문제를 접하면서 reduce함수를 활용한 경우가 많았다.
reduce는 동사로 줄이다라는 뜻이다.
javascript에서는 배열객체에서 사용하는 함수로 배열을 돌려서 줄여간다?
예제를 통해서 알아보자
Array.reduce()
예제 1) reduce() 메서드는 배열의 각 요소에 대해 주어진 reducer함수를 실행하고, 하나의 결과값을 반환한다.
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(previousValue, currentValue) => previousValue + currentValue,
initialValue
);
console.log(sumWithInitial);
// expected output: 10
리듀서 함수는 네 개의 인자를 가집니다.
- 누산기 (acc)
- 현재 값 (cur)
- 현재 인덱스 (idx)
- 원본 배열 (src)
리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.
예제2) 값을 누산시켜 보자
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
}, 10);
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce