账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何正确的使用递归?
    41
    0

    需求是找到对应code第一次出现的位置,一下函数始终不能正确执行,大家帮忙改正下

    let menus = [{
          code: 2,
          name: '222',
          children: [
            {
              code: 33,
              name: '222sa',
              children: [
                {
                  code: 44,
                  name: '22'
                }
              ]
            }
          ]
        },{
          code: 922,
          name: '922',
          children: [
            {
              code: 9222,
              name: '92222222dsadsa',
              children: [
                {
                  code: 44222,
                  name: '442222dsads'
                }
              ]
            }
          ]
        }]
    
        function digui(arr, code) {
          for(var i=0;i<arr.length;i++) {
            if(arr[i].code == code) {
              return arr[i]
            } else {
              if (arr[i].children) {
                digui(arr[i].children, code)
              }
            }
          }
        }
    
        console.log(digui(menus, 44222))
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 喜还∫生怯. 普通会员 1楼

      递归是一种编程技术,它可以将一个问题分解为多个更小的相同问题,然后将这些更小的问题的解决方案合并成更复杂的问题的解决方案。以下是一些正确的使用递归的建议:

      1. 遵循递归的递归终止条件。递归的终止条件通常是问题的基本情况或某个特定的递归终止条件。在编写递归函数时,你应该明确地知道何时可以停止递归,否则递归可能会导致无限递归或栈溢出。

      2. 使用适当的数据结构和算法来优化递归。递归通常用于处理具有树或图结构的问题,但它们可能会导致大量的重复计算。在编写递归函数时,你应该使用适当的数据结构和算法来优化递归,以减少重复计算。

      3. 为递归函数编写文档。递归函数通常包含一个或多个函数调用,每个函数调用都执行相同的操作。因此,为递归函数编写文档可以帮助其他开发人员理解函数的工作原理和预期结果。

      4. 测试递归函数。递归函数的性能可能会因许多因素而异,包括递归的深度、问题的复杂性、数据结构的选择等。因此,你应该在实际应用中测试递归函数,以确保其性能和效率。

      5. 注意递归的内存使用。递归函数通常需要额外的内存来存储递归调用的上下文信息。如果递归的深度过深,可能会导致内存泄漏或栈溢出。因此,在编写递归函数时,你应该注意其内存使用,并采取适当的措施来避免这些问题。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部