배열의 각 요소에 대해서 주어진 함수를 실행하고 결과물을 누적해서 반환
const numbers = [1, 2, 3, 4, 5];
numbers.reduce(function (누적된값, 일반값) {
console.log("--------");
console.log(누적된값);
console.log(일반값);
});
위의 코드를 실행하면 다음과 같이 출력된다.
--------
1
2
--------
undefined
3
--------
undefined
4
--------
undefined
5
최초 누적된값은 배열의 첫번째 요소인 '1'로 세팅
일반값 은 배열의 두번째 요소인 '2'로 세팅
reduce는 [배열길이 -1] 만큼 순회한다.
다음은 위 코드를 수정한 것이다.
numbers.reduce(function (누적된값, 일반값) {
console.log("--------");
console.log(누적된값);
console.log(일반값);
return 누적된값 + 일반값;
});
누적된값 + 일반값을 반환하는 코드를 추가해줬다.
위의 코드를 실행하면 다음과 같이 출력된다.
--------
1
2
--------
3
3
--------
6
4
--------
10
5
최종 누적값(15)을 구하고 싶다면, reduce를 실행한 결과물을 변수에 담으면 된다.
const numbers = [1, 2, 3, 4, 5];
const result = numbers.reduce(function (누적된값, 일반값) {
return 누적된값 + 일반값;
});
console.log(result); // 15
reduce를 사용하면 for 문을 돌리지 않고도 1,2,3,4,5의 합을 구할 수 있다!