我试图从freeCodeCamp解决Javascript的一个问题。问题的标题是";使用递归创建数字范围";。我无法根据问题描述准确地解决问题。然后,我试图从互联网上了解可能的解决方案。我找到了一个精确的解决方案,并自行修改以更好地理解。编译器接受答案!但我现在真的不明白为什么它最终会返回一个数组,因为当startNum&endNum相同。有人能解释一下这个节目吗?
function rangeOfNumbers(startNum, endNum) {
console.log(startNum);
console.log(endNum);
if (endNum - startNum === 0) {
console.log(startNum);
return [startNum];
} else {
var numbers = rangeOfNumbers(startNum, endNum - 1);
console.log(numbers);
//numbers.unshift(endNum);
numbers.push(endNum);
return numbers;
}
}
console.log(rangeOfNumbers(1, 5));
问题链接:https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers
但我现在真的不明白为什么它最终会返回一个数组,因为当
startNum
&CCD_ 2是相同的。
不,不是。
return [startNum];
返回一个数组。startNum
周围的[]
创建了一个值为startNum
的数组作为其单个元素。
你显然把那条线误读为
return startNum;