240808 reduce

신한별·2024년 8월 8일

💪 매일 기록

목록 보기
40/97

reduce

배열의 각 요소에 대해서 주어진 함수를 실행하고 결과물을 누적해서 반환

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의 합을 구할 수 있다!

0개의 댓글