재귀를 사용하여 카운트다운 만들기(FreeCodecamp 참고 사항)

다음은 재귀를 사용하여 카운트업이 다운되는 방법에 대한 예입니다.

unction countup(n) {
  if (n < 1) {
    return [];
  } else {
    const countArray = countup(n - 1);
    countArray.push(n);
    return countArray;
  }
}
console.log(countup(5));


위의 기능은 여기에 가장 잘 설명되어 있습니다.

주목해야 할 중요한 점은 배열 요소가 1부터 추가되기 시작하고 countup(4)이 countup(1)이 완료될 때까지 대기한다는 것입니다.

위의 예를 사용하고 카운트다운 함수를 만들어 countdown(n)에서 n을 전달할 때 배열에서 n에서 1개의 숫자를 반환하도록 합니다.

고려해야 할 사항, unshift에 대해 전혀 모른다면 함수가 호출될 때마다 새 배열을 선언하여 배열에 요소를 추가하려고 할 것입니다. 작동하지 않지만 사용 방법에 대한 아이디어가 있는 경우 다음과 같이 해결할 수 있는 인수

function countdown(n, newArr=[]) {
    if (n <= 0) {
        return newArr;
    }
    newArr.push(n);
    return countdown(n - 1, newArr)
}

console.log(countdown(5));


이것이 재귀 함수에서 해당 요소와 함께 인수 배열을 전달하는 방법입니다.

이제 가장 짧은/imo 최상의 솔루션은 아래와 같이 배열 방법에서 unshift를 사용하는 것입니다. unshift는 push와 동일하지만 반대 순서이므로 잘 작동합니다.


function countdown(n) {
  if (n < 1) {
    return [];
  } else {
    const arr = countdown(n - 1);
    arr.unshift(n);
    return arr;
  }
}

좋은 웹페이지 즐겨찾기