我剛剛開始在 Freecode 上學習 JS 并執行該任務使用遞回創建一系列數字)。 該函式應回傳一個整數陣列,該陣列以 startNum 引數表示的數字開頭,以 endNum 引數表示的數字結尾。起始編號將始終小于或等于結束編號。您的函式必須通過呼叫自身來使用遞回,而不是使用任何型別的回圈。它也適用于 startNum 和 endNum 相同的情況。
我的解決方案在下面
let myVal = [];
function rangeOfNumbers(startNum, endNum) {
if (startNum <= endNum) {
myVal.push(startNum);
startNum ;
rangeOfNumbers(startNum, endNum);
}
return myVal;
}
rangeOfNumbers(2, 5);
通常它應該運行良好,但我不知道為什么它是不可接受的。
uj5u.com熱心網友回復:
為了遞回呼叫它,您應該將陣列賦予函式:
function rangeOfNumbers(startNum, endNum, myVal){
if(startNum <= endNum){
myVal.push(startNum);
startNum ;
return rangeOfNumbers(startNum, endNum, myVal);
}
return myVal;
}
并以這種方式呼叫函式:
rangeOfNumbers(2, 5, []);
uj5u.com熱心網友回復:
有幾種方法可以實作這一點。
let myVal = [];
function rangeOfNumbers(startNum, endNum, myVal) {
if (startNum === endNum) {
myVal.push(startNum);
return myVal;
}
myVal.push(startNum);
return rangeOfNumbers(startNum 1, endNum, myVal);
}
console.log(rangeOfNumbers(1, 10, myVal)); //[1, 2, 3, 4, 5,6, 7, 8, 9, 10]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369216.html
標籤:javascript
上一篇:如何解決JSX中的無限回圈?
下一篇:反應,試圖從json回傳道具
