遞迴救援
function sum(numbers) {
if(numbers.length == 0) {
return 0;
}
return numbers[0] + sum(numbers.slice(1));
}
這是遞迴版本。沒有變異,但我們正在製作一個如下所示的呼叫堆疊,它使用額外的記憶體。
總和([10,5,6,7]);
10 +總和([5,6,7]);
10 + 5 +總和([6,7]);
10 + 5 + 6 +總和([7]);
10 + 5 + 6 + 7 + sum([]);
10 + 5 + 6 + 7 + 0;