什么是递归,递归的实际应用

什么是递归

递归就是用函数来做循环,即在函数内部再调用这个函数。 注 意 一 定 要 有 r e t u r n 条 件 , 在 适 当 的 时 候 r e t u r n 出 去 , 否 则 会 死 循 环 \color{#ff0000}{注意一定要有return条件,在适当的时候return出去,否则会死循环} returnreturn

实际应用

入门版

案例一:自然数1到n的求和(一般不会用递归求和,这里是为了加深递归的了解)
function sum(n) {
    
    
    if (n === 1) return 1
    return n + sum(n - 1)
	//相当于 return 100 + 99 + 98 + ... + 1
}
sum(100)//5050

进阶版

案例二:递归实现对象的深拷贝
function deepClone(sourceObj) {
    
    
    if (!sourceObj || typeof sourceObj !== 'object' || Object.keys(sourceObj).length === undefined) {
    
    
        return sourceObj
    }
    const cloneObj = sourceObj instanceof Array ? [] : {
    
    }
    Object.keys(sourceObj).forEach(obj => {
    
    
        cloneObj[obj] = deepClone(sourceObj[obj])
    })
    return cloneObj
}
let newObj = deepClone(obj)//深拷贝后的新对象

如 有 问 题 或 错 误 , 欢 迎 指 正 \color{skyblue}{如有问题或错误,欢迎指正}

猜你喜欢

转载自blog.csdn.net/zty867097449/article/details/108120565