recursive function javascript

JavaScript
// Count Up
function countup(n) {
    //Base case
    if (n < 1) {
        return [];
    } else {
        // The Recursion
        const countArray = countup(n - 1);
        countArray.push(n); 
        return countArray; 
    }
}

// Count Down
function countdown(n) {
    // Base case
    if (n < 1) {
        return [];
    } else {
        // The Recursion
        const count = countdown(n - 1);
        count.unshift(n); 
        return count; 
    }
}


// User Defined
function rangeOfNumbers(startNum, endNum) {
    // Base case
    if (startNum - endNum === 0) {
        return [startNum];
    } else {
        // The Recursion
        const count = rangeOfNumbers(startNum, endNum - 1);
        count.push(endNum);
        return count;
    }
}function pow(x, n) {
  if (n == 1) {
    return x;
  } else {
    return x * pow(x, n - 1);
  }
}

alert( pow(3, 3) ); // 27function recurse(arr=[])
{
  	// base case, to break the recursion when the array is empty
    if (arr.length === 0) {
    	return;
    }
  	
  	// destructure the array
	const [x, ...y] = arr;
  
  	// Do something to x
  	
  	return recurse(y);
}
Source

Also in JavaScript: