zoukankan      html  css  js  c++  java
  • 递归?递归!递归!

    递归真是一个神奇的东西。

    之前自己不会实现,不了解递归,然后就查资料百度,看视频。

    然后跟着视频手把手的学会了递归。。

    然后过两天又会忘记。

    今天又遇到一个js递归问题,实现对象转数组。

    编写之前就想到用递归来完成。

    但是实际上手的时候就发现不知道如何下手[并没有思考之后再去动手,而是直接上手写代码,坏习惯]。

    怎么写都完不成。

    后面就像先完成第一步,根据要求实现最基础的东西,然后你再看,就会找到完整的解决办法,不要着急。

    原题:

    http://ife.baidu.com/course/detail/id/50

    数组转为对象:

    var menuArr = [
        [1, "Area1", -1],
        [2, "Area2", -1],
        [3, "Area1-1", 1],
        [4, "Area1-2", 1],
        [5, "Area2-1", 2],
        [6, "Area2-2", 2],
        [7, "Area1-2-3", 4],
        [8, "Area2-2-1", 6],
    ];

    如上有一个用来存储多级菜单数据的数组,编写一个函数,将其转为如下的对象

    var menuObject = {
        "1": {
            name: "Area1",
            subMenu: {
                "3": {
                    name: "Area1-1"
                },
                "4": {
                    name: "Area1-2",
                    subMenu: {
                        "7": {
                            name: "Area1-2-3"
                        }
                    }
                }
            }
        }
    
        ……
    
    }
    解答结果:
            //做递归不能一开始就想全部逻辑
            //那样就真的递归了
            //先实现单个值找后代
            //实现之后你就发现
            //怎么找后代的后代了
            //数组转对象
            function arrTurnObj(softNum = 0) {
                let newObj = new Object;
                for(let i in menuArr){
                    if(menuArr[i][2] == softNum){
                        newObj[menuArr[i][0]] = {
                            "name" : menuArr[i][1],
                            "subMenu" : arrTurnObj(menuArr[i][0])
                        };
                    }
                }
                return newObj;
            }
    

      



  • 相关阅读:
    Centos搭建SVN服务器
    JavaScript 对象 之创建对象 学习笔记
    ThinkPHP 学习记录
    Git 版本控制 在 WIN 下的一些使用方法
    关于 CSS 的重用性
    双飞翼布局和圣杯布局
    cocos2dx3.8 ios打包脚本编写
    如何做dragonbones的lua绑定(xcode)
    【转】如何做dragonbones的lua绑定(Android)
    【转】如何做dragonbones的lua绑定(VisualStudio)
  • 原文地址:https://www.cnblogs.com/xiaqiuchu/p/10045135.html
Copyright © 2011-2022 走看看