어떠한 문제를 해결 할때, 동일한 구조의 더 작은 문제를 함으로써 주어진 문제를 해결하는 방법
재귀호출 => 실행 과정 중 자기 자신을 호출 한다.
모든 재귀 함수는 반복문으로 표현 할 수 있다.
추가적으로 알아둘 것
객체 구조분해 할당(MDN)
let o = {p: 42, Q: true} let {p: foo, q: bar} = o console.log(foo); // 42 console.log(bar); // true
배열 구조분해 할당(MDN)
let foo= ["ond", "two", "three"] let [red, yellow, green] = foo; console.log(red); // "one" console.log(yellow); // "two" console.log(green); // "three"
배열 구조분해 할당(spread)
let a = [1, 2, 3, 4, 5] let [head, ...tail] = a console.log(head); // 1 // number console.log(tail); // [2, 3, 4, 5] // array(배열)
메소드
includes() =>배열안에 해당하는 요소가 있는지 확인 =>있으면 true, 없으면 false로 반환
재귀 함수 템플릿
function recursive(input1, input2, ...) { // Base Case : 문제를 더 이상 쪼갤 수 없는 경우 if(문제를 더 이상 쪼갤 수 없을 경우) { return 단순한 문제의 해답 } //recursive Case //그렇지 않은 경우 return 더 작은 문제로 새롭게 정의된 문제 // 예1. someValue + recursive(input1Changed, input2Changed, ...) // 예2. someValue * recursive(input1Changed, input2Changed, ...) }