递归的介绍
就是函数自己调用自己。是循环运算的一种算法模式。常用于解决一些数学运算,如阶乘函数、求和和斐波那契数列。
使用时要 注意 以下两部分:
-
递归调用的过程。
-
递归终止的条件(出口)。
在没有限制的情况下,递归运算会无终止地自身调用,所以 在递归运算中要结合 条件语句(if)进行控制,只有在某个条件成立时才允许执行递归,否则不允许调用自身
- 阶乘函数
function f1(n) {
if (n == 1) {
return 1
} else {
return n * f(n - 1)
}
}
console.log(f1(5));
- 求和
function f(n) {
if (n == 1) {
return 1
} else {
return n + f(n - 1)
}
}
console.log(f(100));
- 斐波那契数列
function f(n) {
if (n == 1 || n == 2) {
return 1
} else {
return f(n - 1) + f(n - 2)
}
}
console.log(f(5));
- 循环数组
let arr = [100, 200, 300, [400, 500, [50, 60, 80, [230, 5500, 80]]]]
let arr1 = []
let sum = 0
function fn(arr) {
arr.forEach((item, index) => {
if (item instanceof Array) {
fn(item)
} else {
arr1.push(item)
sum += item
}
})
}
fn(arr)
console.log(arr1);
console.log(sum);