JavaScript 中用递归对数组求和的修改版本

javascriptweb developmentobject oriented programming更新于 2025/10/22 5:32:17

假设,我们需要编写一个递归函数来对数字数组的所有元素求和,但有一个变化,变化是我们编写的递归函数不能初始化任何额外的变量(内存)。

就像我们不能使用变量来存储总和或保持数组索引的计数一样,一切都必须使用我们已经拥有的。

这是解决方案 −

我们已经有一个数组,可以使用它的第一个元素(即第零个索引处的元素来保存递归和)。

方法是我们反复从数组中弹出一个元素并将其添加到数组的第一个元素,直到只剩下一个元素。

当我们只剩下一个元素时,它将是数组的累积和然后返回。此方法的代码如下 −

示例

const recursiveSum = arr => {
   if(arr.length > 1){
      arr[0] += arr.pop();
      return recursiveSum(arr);
   };
   return arr[0];
};
console.log(recursiveSum([1,2,3,4]));
console.log(recursiveSum([1,2,3,4,3,6,3,32,7,9,5]));
console.log(recursiveSum([]));

输出

控制台中的输出将是 −

10
75
undefined

相关文章


有用资源