재귀
7593 단어 htmlwebdevcssjavascript
-Why use Recursion
-The Call Stack
-Helper Method Recursion
재귀를 사용하는 이유
루프를 사용하지 않고 프로그램에서 반복을 만들 수 있는 또 다른 기회가 있습니다. 재귀는 함수가 계속해서 자신을 호출하는 프로세스이기 때문에 그렇게 할 수 있습니다.
호출 스택
호출 스택은 스택 데이터 구조입니다. 함수가 호출될 때마다 호출 스택의 맨 위에 배치되거나 푸시됩니다.
JavaScript가 return 키워드를 보거나 함수가 종료되면 컴파일러가 제거되거나 꺼집니다.
호출 스택 예
function takeShower(){
return "Showering!"
}
function eatBreakfast(){
let meal = cookFood()
return `Eating ${meal}`
}
function cookFood(){
let items = ["Oatmeal", "Eggs", "Protein Shake"]
return items[Math.floor(Math.random()*items.length)];
}
function wakeUp() {
takeShower()
eatBreakfast()
console.log("Ok ready to go to work!")
}
wakeUp()
function countDown(num){
if(num <= 0) {
console.log("All done!");
return;
}
console.log(num);
num--;
countDown(num);
}
countDown(3)
// Iterative Version
function countDown(num){
for(var i = num; i > 0; i--){
console.log(i);
}
console.log("All done!")
}
도우미 메서드 재귀
function collectOddValues(arr){
let result = [];
function helper(helperInput){
if(helperInput.length === 0) {
return;
}
if(helperInput[0] % 2 !== 0){
result.push(helperInput[0])
}
helper(helperInput.slice(1))
}
helper(arr)
return result;
}
collectOddValues([1,2,3,4,5,6,7,8,9])
Reference
이 문제에 관하여(재귀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/code_regina/recursion-1f08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)