00:00
各位同学大家好,下面呢,我们开始完成递归查找这个过程,咱们开始写一下,首先第一个我们先把这个集合进行便利,我这里边改了一个名字叫吹not,或者说用之前名字都可以,首先我先做一个便利。那咱们快速便利下。咱们加上这个system menu,然后我起个名字就叫现在完成便利,然后便利之后我们怎么做呢?首先先获取当前这个菜单的ID,然后咱们再来获取所有菜单里那个ID,然后把这两个进行比对,看它们是否一样,一样的话我们进行封装。那下面我们写下第一个得到当前这个菜单的ID,就是这个system menu.get ID,我们先得到,这是第一个。
01:02
然后得到之后呢,第二个得到所有菜单的ID,那咱通过it点上get ID把这个得到,然后把两做个比对啊,但是目前啊一个小问题,他们类型是不一样了,这个类型中啊,有这么一个问题,就是各位几种方式,第一个你可以把这类型呢都改成死缀,因为我这里改成了了,如果你不想改的话,那可以从代码中自由处理,因为咱们的ID值呢,肯定不可能有。Abcd这些字母肯定都是数字,因为咱们用MP自动生成的添加这个ID,所以咱把这个string我就改成一个类型就可以了,那我写一下啊,加上浪。点帕斯ID。然后得到这个ID值,咱就写一个这个ID。就是当前这个菜单的ID我就叫cid,所以现在这个值都可以了,可以之后呢,咱把这两只做一个比对,然后看下这个效果,下面我加上一个if,比对一下两个值。
02:13
咱们写到这里,Cid等于parent ID,如果说他们一样,那咱们进行封装就可以了,我们用这个system menu点上,因为像它的children里面放数据,咱们get一个children,然后点上A,把这对象咱就给头放上请求就可以了。但是这个过程中呢,因为咱要循环递归实现,所以咱们讲一个递归怎么写递归给大家写一下啊。现在我把这个饭的秋准咱们拿过来。然后在里边呢,继续传参数,第一个就是这个it,第二个是咱这个集合,现在这是递归,比如我查了第一个节点,然后再查这节点下面有没有子节点,以此类推,直到查不到为止,这就是一个递归的查询,重复循环掉,自己来进行实现,最终咱们把这个结果我们做一个就可以了,那我最终对推一下system menu。
03:16
现在啊,这是我们的做法,但是这过程中呢,咱这么写可能感觉有点乱,咱给他写到一起去,我直接这么来写了,给大家改一下啊,就这位置我来一个这个浪类型。里边这个pass了,然后加上这个ID,咱给它写到一起去,然后这里边用it get parent,咱们做个比对,这一段我就直接给它啊,咱就住掉了,也保留到这里啊,就怎么写都对,我就写到下边。然后在过程中呢,咱为了就是更加明确,我们做个处理,就是如果说啊,咱们get children的时候,对children本身等于now,咱们需要再做个初始化,为了防止一些特殊的情况。
04:03
如果它等于,那那咱把它做一个初始化。Set children上一个release,所以说以上我们就把这个递归的这个方法就最终完成了,这个方法实验过程中就按照我刚才说的这个步骤进行实现这个步骤我们再重复一遍第一步得到所有菜单。然后第二步找到我们的根节点,第三步找到根节点下边的子节点,那怎么找用当前节点的ID,再找到谁的PID跟它一样一样的话,我们进行封装,因为是递归嘛,所以咱不断往下去找,最终直到找不到为止。以上就是咱写这个菜单的树形显示代码,通过递归我们最终实现出来了。
我来说两句