반복 대체 루프를 사용하는 방법

귀속은 하나의 개념으로 함수는 자체로 표시할 수 있다는 것이다.이 점을 이해하기 위해서는 먼저 다음과 같은 작업을 고려해야 한다. 수조의 전 n개의 요소를 추가하여 이 요소의 결과를 만들어야 한다.우리는 순환을 사용하지 않고 다시 쓸 수 있다.
  • 다음은 이 예의 for 순환입니다.
  • function sum(arr, n) {
        var product = 0;
        for (var i = 0; i < n; i++) {
            product += arr[i];
        }
        return product;
      }
    
    console.log(sum([2, 3, 4, 5], 3)); will display 9
    
  • 여기에 귀속 함수sum(arr, n)를 작성했는데 이것은 수조arr의 전 n개 요소의 합
  • 을 되돌려줍니다.
  • 주의: 귀속 함수는 귀환할 때 반드시 기본적인 상황이 있어야 하며, 함수를 다시 호출하지 않아야 한다. (이 예에서 n<=0일 때) 그렇지 않으면 영원히 실행할 수 없다.
  • function sum(arr, n) {
    if (n <= 0) {
      return 0;
    } else {
      return sum(arr, n - 1) + arr[n - 1]; //return sum(arr, n - 1) <—-calls itself
    }
    }
    
    console.log(sum([2, 3, 4, 5], 3)); will display 9
    
    // sum([2, 3, 4, 5], 3 - 1) + arr[3 - 1];
    // sum([2, 3, 4 ,5], 2) + arr[2];
    // sum([2, 3, 4, 5], 2) + 4;
    //        n = 2
    
    // sum([2, 3, 4, 5], 2 - 1) + arr[2 - 1];
    // sum([2, 3, 4, 5], 1) + arr[1];
    // sum([2, 3, 4, 5], 1) + 3; 
    //      n = 1             3
    
    // sum([2, 3, 4, 5], 1 - 1) + arr[1 - 1];
    // sum([2  3, 4, 5], 0) + arr[0];
    // sum([2, 3, 4, 5], 0) + 2;
    //      n = 0             2
    
    //      we hit our base case so now n = 0
    
    // 0 + 2 + 3 + 4 = 9
    // we want it to return 9 because 4 + 3 + 2 = 9;
    

    좋은 웹페이지 즐겨찾기