在JavaScript中使用递归求和数组的修改后的版本

假设,我们需要编写一个递归函数,该求和函数将Numbers数组的所有元素相加,但有一个转折,而转折是我们编写的递归函数不能初始化任何额外的变量(内存)。

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

这是解决方案-

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

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

当我们只剩下一个元素时,它将是数组的累加和,然后我们将其返回。该方法的代码将是-

示例

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
猜你喜欢