递归

98 阅读1分钟

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)