什么是递归
函数内部自己调用自己就是递归 通俗一点就是大事化小,小事化了。
递归求和
let arr = [100, 200, 300, [400, 500, [49, 59, 80, [232, 5435, 77]]]];
function fn(params) {
let sum = null;
params.forEach((item) => {
if (Array.isArray(item)) {
sum += fn(item);
} else {
sum += item;
}
});
return sum;
}
多维数组转一维数组
let newArr = [];
function one(params) {
params.forEach((item) => {
if (Array.isArray(item)) {
one(item);
} else {
newArr.push(item);
}
});
return newArr;
}
阶乘
1*2*3*4*5*6*7*8
function get(n) {
if (n == 1) return 1;
return n *= get(n - 1);
}
console.log(get(8));
阶和
1+2+3+4+5
function get(n) {
if (n == 1) return 1;
return n + get(n - 1);
}
console.log(get(5));
斐波那契数列
function get(n) {
if (n == 1) return 1;
return n *= get(n - 1);
}
console.log(get(8));