1.递归的概念
就是函数自己调用自己本身,或者在自己函数调用的下级函数中调用自己。
2.经典案例
1.求和
求 1-100 的和
function sum(n) {
if (n == 1) return 1
return sum(n - 1) + n
}
sun(100) 5050
2.斐波拉契数列
1,1,2,3,5,8,13,21,34,55,89...求第 n 项
function fin(n) {
if (n == 1 || n == 2) {
return 1
} else {
return fin(n-1) + fin(n-2)
}
}
fin(5)
3.深拷贝
var temp = {};
function clone(object) {
for(let key in object) {
if (Object.prototype.toString.call(object.key) == "[object Object]") {
clone(object[key]);
} else {
temp[key] = object[key];
}
}
}
let obj = {"a": 1, "b": {"c": 2, "d": {"e": 3}}};
clone(obj);
console.log(temp)