我想用Javascript寫一個遞歸函數,但顯然我錯過了一些東西,我無法讓它返回到我想要的位置。 在以下示例中,我期望在日誌中看到baz = 18,但baz未定義。Javascript的遞歸使用返回undefined
https://jsfiddle.net/n8fg1h3v/1/
任何想法?
function foo(arr) {
if (arr[0]==7) {
return 18
} else {
arr = arr.slice(1,arr.length);
foo(arr);
}
}
var arr1 = [9,1,2,3,4,7,6];
var baz = foo(arr1);
console.log(baz)
請注意,雖然你可以重新分配('ARR = ...' )在Javascript,無論你想要的,這是相當罕見的在遞歸算法中。將表達式作爲參數傳遞('foo(arr.slice(...))') – ftor