자기 자신을 호출하는 함수이다.
더 이상 쪼갤 수 없어 진행이 되지 않을 때 까지 호출하여 문제를 해결한다.
function arrSum(arr) {
//Base Case : 문제를 더 이상 쪼갤 수 없는 경우 (재귀의 기초)
if (arr의 길이가 0인 경우) {
return 0;
}
/*
* Recursive Case : 그렇지 않은 경우
* 문제를 더 이상 쪼갤 수 없는 경우
* head: 배열의 첫 요소
* tail: 배열의 첫 요소만 제거된 배열
*/
return head + arrSum(tail);
}
ex)
function factorial(num) {
//Base Case
if(num <= 1) return 1
//Recursive Case
return num * factorial(num - 1)
}
let output = factorial(5);
console.log(output); // 120
위와 같이 Base Case로 빠져나올 때 까지 호출하게 된다.