既然参数传递两个数字,为什么结果显示一个数组



我试图从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;

最新更新