我正在阅读 grokking 算法书,并试图将我的头脑围绕在递归上。书中的挑战之一是“编写一个递归函数来计算列表中项目的数量。”。我想出了以下代码,该代码有效:

function recursiveArrayCount(arr, count) {
  if (arr.length == 0) {
    return 0;
  } else {
    arr.pop();
    return count + recursiveArrayCount(arr, count);
  }
}

let myArray = [1, 10, 23, 11, 4, 48, 88];
console.log(recursiveArrayCount(myArray, 1));

我的问题是,在 javascript 中有没有更好的方法来做到这一点?特别是,我不喜欢用初始的 '1' 作为计数值的种子 - 但我想不出另一种方法来做到这一点。

最佳答案

您根本不需要第二个参数:

function recursiveArrayCount(arr) {
    if (arr.length == 0) {
        return 0;
    }
    return 1 + recursiveArrayCount(arr.slice(1));
}

关于javascript - 使用JS中的递归函数计算数组的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62983671/

10-11 05:36