美文网首页
递归函数

递归函数

作者: wyc0859 | 来源:发表于2021-11-10 17:45 被阅读0次

将分类递归,上下级排序

list: [{
                    id: 1,
                    name: "a",
                    pid: 0,
                    level: 0
                }, {
                    id: 2,
                    name: "a1",
                    pid: 1,
                    level: 1
                }, {
                    id: 3,
                    name: "a2",
                    pid: 1,
                    level: 1
                }, {
                    id: 4,
                    name: "a1-1",
                    pid: 2,
                    level: 2
                }, {
                    id: 5,
                    name: "b",
                    pid: 0,
                    level: 0
                }, {
                    id: 6,
                    name: "a1-2",
                    pid: 2,
                    level: 2
                }]

【PHP】

//通过父类ID获取所有的子类
function recursiveCategory($pid,$category){
    $data = [];
    foreach ($category as $item){
        if($item['pid']==$pid){
            $arr['id'] = $item['id'];
            $arr['name'] = $item['name'];
            echo $item['id']."-";
            $cate = recursiveCategory($item['id'],$category);
            if(!empty($cate)){
                $arr[] =$cate;
            }
            $data[] = $arr;
            unset($arr);
        }
    }
    return $data;
};
$arr=recursiveCategory(0,$category);
echo json_encode($arr,JSON_UNESCAPED_UNICODE);

//通过子类获取所有的父类
function getCategoryByChild($childId,$category){
    $data = [];
    foreach ($category as $item){
        if($item['id'] == $childId){
            $arr['id'] =$item['id'];
            $arr['name']= $item['name'];
            if($item['pid']!=0){
                $arr[] = getCategoryByChild($item['pid'],$category);
            }
            $data[]=$arr;
        }
    }
    return $data;
}
$arr=getCategoryByChild(5,$category);
echo json_encode($arr,JSON_UNESCAPED_UNICODE);

【JS】

           //const list=this.f_cats(this.list,1)
            const list = this.c_cats(this.list, 4)
            console.log("list", list)
            
            //通过父类ID获取所有的子类
            f_cats(cats, pid) {
                let clist = []
                cats.forEach(item => {
                    //console.log("传:"+pid,"pid:"+item.pid,"id:"+item.id);
                    if (item.pid == pid) {
                        //console.log("-----------");
                        const children = this.f_cats(cats, item.id)
                        if (children.length > 0) {
                            item.children = children
                        }
                        clist.push(item)
                    }
                })
                return clist
            },

            //通过子类获取所有的父类
            c_cats(cats, cid) {
                let clist = []
                cats.forEach(item => {
                    console.log("传:" + cid, "pid:" + item.pid, "id:" + item.id);
                    if (item.id == cid) {
                        console.log("-----------");
                        if (item.pid != 0) {
                            const f_cats = this.c_cats(cats, item.pid);
                            item.father = f_cats
                        }
                        clist.push(item)
                    }
                })
                return clist
            }

相关文章

  • Day10递归函数、模块、迭代器、生成器

    一、递归函数 1、什么是递归函数 在函数中调用函数本身的函数就是递归函数。 2、递归的作用 循环能做的递归都能做 ...

  • day11 函数(3)

    递归函数 实际开发的时候,能不用递归就不用 什么是递归函数 函数中调用函数本身的函数就是递归函数 递归的作用: 循...

  • python 递归函数

    递归函数 递归函数 : 在函数的调用自身 递归边界 : 退出递归的终止条件 例1,函数func如果没有设备递归边界...

  • day11-日常(递归函数、模块、迭代器、生成器)

    递归函数(实际开发的时候,能不用递归就不用) 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归的...

  • 2019-01-07day11学习总结

    递归函数 实际开发的时候能不用递归就不用递归 1. 什么是递归函数 函数中调用函数本身的函数就是递归函数 2. 递...

  • 递归函数、模块、生成器、迭代器

    一、递归函数 实际开发的时候,能不用递归就不用 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归...

  • day 11总结

    递归函数 实际开发的时候,能不用递归就不用1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作用:...

  • Day11笔记

    实际开发的时候,能不用递归就不用 递归函数 1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作用...

  • day11 生成器迭代器

    一、递归函数 1.什么是递归函数在函数中调用函数本身的函数就是递归函数 2.递归的作用:循环能做的事,递归都能做 ...

  • Day_11-函数(三)

    一、递归函数 实际开发时候,能不用递归就不用 1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作...

网友评论

      本文标题:递归函数

      本文链接:https://www.haomeiwen.com/subject/nqrizltx.html