Helper Method Recursion Helper Method Recursion는 외부 함수(outer function)와 안에 있는 재귀함수, 두 개의 함수를 가지고 있다. function outer(input){ let outerScopedVariable = []; function helper(helperInput){ // modify the outerScopedVariable helper(helperInput--); } helper(input); return outerScopedVariable; } Helper Method Recursion는 배열이나 데이터 목록 같은 것을 컴파일(compile)해야 할 때 사용된다. 예를 들어 어떤 배열에서 모든 홀수 값을 수집하는 것과 같은 작업을 수행할 ..
재귀란? "A process(a function in our case) that calls itself" "자기 자신을 호출하는 함수를 의미한다." 재귀 함수를 호출하게 되면 자기 자신을 끝없이 호출하게 된다. 이러한 재귀 함수를 잘 활용하면 반복적인 작업을 해야하는 문제를 더 간결한 코드로 풀어낼 수 있다. 재귀 함수는 계속해서 새로운 함수를 call stack에 추가한다.(동일한 함수를 계속 추가하고, 추가된 함수는 호출을 기다린다.) The call stack 함수를 호출하면 호출 스택의 꼭대기에 쌓이는데, 마치 책상 위에 쌓여있는 종이 더미와 같다. 종이 더미에 종이를 가장 위에 올려 놓듯이 우리가 새로 추가하는 함수가 제일 꼭대기에 위치하게 된다. 자바스크립트가 반환 키워드(return keyw..
Tree UI는 화면을 구성할 때 재귀를 사용하는 가장 대표적인 예시이다. createTreeView 함수를 재귀 호출하여서 menu에 들어있는 데이터를 화면에 나타도록 작성하였다. menu의 내용을 보면 마트료시카 인형과 비슷하다는 느낌을 받을 수 있다.(열어보면 비슷한게 들어 있음) for 문을 사용하여 menu의 key 중 'children'이 있는지 여부를 확인 한 후 있으면 li의 요소로 input과 span, ul을 넣어주고 없으면 li에 menu.name만 넣어주도록 한다.(여기서 base case는 'children'의 여부) 이 과정을 각각의 요소에 반복해서 실행해주기 위해서 createTreeView 함수를 실행시켜 준다. 코드를 작성하면서 어려웠던 점은 base case가 어떤 것인지..