我正在阅读 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/