- 始终先确定函数的基本情况。
- 将参数传递给将立即到达基本情况的函数。
确定至少将执行递归函数调用一次的参数。
// 阶乘
function digui(n) {if (n === 1) { return 1; } else { return n * digui(n - 1); }
}
console.log(digui(5)); // 输出:120// 数组扁平化
let arr = [1, 2, [3, 4, [5]]]
function flatten(arr) {//定义空数组接值 let result = [] //遍历数组 for (let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { // flatten 就是扁平化,递归 result = result.concat(flatten(arr[i])) // [1, 2, 3, 4, 5] } else { //往数组里面加值 result.push(arr[i]) } } return result
}
console.log(flatten(arr))
// 斐波那契数列
const fibonacci = n => {let num = new Array(n).fill(0); // 初始化数组,并设置初始值 num[1] = 1; // 设置第二个元素的值 推导第3个元素 for (let i = 2; i <= n - 1; i++) { num[i] = num[i - 2] + num[i - 1]; // 遍历逐步推导元素值 数组完全符合数列不用进行判断等 运行效率最高。 } return num[n - 1]; // 数组是从0开始计算 所以要减1
};
最后修改:2023 年 11 月 18 日
© 允许规范转载