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

什么是递归

递归就是用函数来做循环,即在函数内部再调用这个函数。 注 意 一 定 要 有 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}{如有问题或错误,欢迎指正}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值