Web Dev/JavaScript :: 자바스크립트

자바스크립트 재귀함수의 아름다움 - 뭘 배웠지?

HJPlumtree 2020. 2. 25. 23:02

재귀 (Recursion) 함수

함수 안에서 자신이 자신을 부르는 짓을 한다.

 

 

for loop 로 표현된

배열의 앞의 n 번째까지 곱하기

 function multiply(arr, n) {
    var product = 1;
    for (var i = 0; i < n; i++) {
        product *= arr[i];
    }
    return product;
  }

 

Recursion 함수로 만든 n 번째까지 곱하기

function multiply(arr, n) {
	if (n <= 0) {
    	return 1;
    }
    else {
    	return multiply(arr, n - 1) * arr[n - 1];
    }
}

 

처음 if 에 return 1을 안주고 0을 주면 허탕치게 된다.

 

이번엔 

Recursion 함수로 n 번째까지 더해보자

function sum(arr, n) {
	if (n <= 0) {
    	return 0;
    }
    else {
    	return sum(arr, n - 1) + arr[n -1];
    }
}

 

이 마찬가지로 n 이 함수를 달리고 달려 return 0 까지 만드는 이 아름다움