1120 자바스크립트_reduce 활용

Logical·2022년 11월 20일

javascript

목록 보기
3/12
post-thumbnail

안녕하세요. 오늘은 reduce 메소드를 배워보도록 할게요.

1. reduce 배열 값 중첩 시키기

reduce는 배열을 순환하면서, 정의된 callback 함수에 의해 단일 값으로 누적이 가능해요.

reduce의 형태는 인자로 callback 함수와 초기값을 받아요. 첫 번째 callback 함수는 여러 매개변수를 정의합니다. 4개까지 매개변수를 인식하고, 첫 번째 누적된 값과 현재 요소값은 필수로 적어야.

reduce 메소드가 처음에 실행할 때, 누적된 값은 두 번째 인자(초기값)을 할당 받고, 이후에는 배열 순환이 끝날 때까지 callback 함수에서 반환된 값으로 누적되어 계산이 됩니다.

배열.reduce(누적된 값, 현재 요소 값, 현재 인덱스, 원본 배열) => {

             return 누적값으로 변환되는 값

}, 초기값);

결과 값 :

15

숫자형 값이 저장된 배열을 '숫자' 변수에 대입합니다.

reduce의 callback 함수 매개변수로, 첫 번째 누적값과 현재요소값을 정의합니다.

매개변수로 전달된 '누적값'과 '현재요소값'을 합산하여, callback 함수 결과값으로 반환합니다. 이렇게 반환된 값은 reduce로 순환된 다음 요소 차례에서 '누적값'으로 할당되어 전달이 됩니다.

즉, return으로 반환된 값은 다음 배열 요소의 '누적값'이 된다는 말입니다. 또한 배열의 모든 요소들을 순환하고 난 마지막 반환값이 바로 reduce 메소드의 결과값입니다.

초기값으로 숫자 0을 대입하고, 이 초기값은 첫 번째 요소에서는 '누적값'으로 대입된다. 따라서 배열의 각 요소를 순환하며 초기값 0부터 각 요소의 값들을 계산하게 되었을 때, 0 + 1, 1 + 2, 3 + 3, 6 + 4, 10 + 5와 같이 진행이 됩니다.

리듀서에 메소드는 이처럼 배열 값을 중첩 시킬 수도 있지만, 중첩된 배열을 합칠 수도 있어요.

중첩된 배열 합치기.

결과 값:

callback 함수의 첫 번째 인자 '누적값'과 '현재요소값'을 concat으로 병합을 합니다. 초기값으로 빈 배열을 대입합니다. 따라서 빈 배열 []부터 [0], [1,2], [0,1,2,4,5,6] ...의 연속으로 '누적값' 요소들을 순차적으로 병합을 하게 됩니다.

오늘은 리듀스 메소드에 대해 정리해 보았습니다.

profile
쉽고 재밌게 코딩하자

0개의 댓글