所以我有這個遞回函式,它接受兩個引數,factor和width. 該factor會由每個遞回實體遞減0.05。在每種情況下,它都會乘以width得到一個值。
如果該值大于900則遞回函式將繼續。如果它小于900那么它將停止并回傳因子值。
現在我得到了,undefined但是如果我記錄所有因素,那么我可以看到未定義之前有數字,但它以未定義停止。
我怎樣才能得到之前的因子值undefined?
這是片段:
function findFactor(factor, width) {
let nextFactor = factor - 0.05;
let value = width * nextFactor;
console.log(nextFactor);
if (value < 900) {
return nextFactor;
} else {
findFactor(nextFactor, width);
}
}
console.log(findFactor(1, 2400));
uj5u.com熱心網友回復:
您正在正確回傳結果以防萬一if (value < 900) {。但是,您忘記回傳后續遞回呼叫的結果。添加return應該可以解決您的問題:
else {
return findFactor(nextFactor, width);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/328814.html
標籤:javascript 递归
