这是挑战:

我们定义了一个带有两个参数的名为rangeOfNumbers的函数。该函数应返回一个整数数组,该数组以startNum参数表示的数字开头,以endNum参数表示的数字结尾。起始编号将始终小于或等于终止编号。您的函数必须通过调用自身来使用递归,而不能使用任何形式的循环。它还适用于startNum和endNum相同的情况。

function rangeOfNumbers(startNum, endNum) {

}
rangeOfNumbers(5, 10); //Should return [5, 6, 7, 8, 9, 10]


有没有一种简单的方法可以解决这个问题?我正在努力处理基本情况并通过递归返回所需的数组。

最佳答案

function rangeOfNumbers(startNum, endNum) {
  return startNum <= endNum ? [startNum].concat(rangeOfNumbers(startNum+1, endNum)) : []
}
console.log(rangeOfNumbers(5, 10));

10-04 16:31