给一组数据,用递归实现树的结构

给一组这样的数据

var college = [
{id: 128, name: “广材信息服务”, parentid: 1, cnt: 224},
{id: 1, name: “计价软件”, parentid: 28, cnt: 11580},
{id: 129, name: “业务知识”, parentid: 28, cnt: 362},
{id: 73152, name: “16”, parentid: 0, cnt: 22},
{id: 2, name: “计量软件”, parentid: 28, cnt: 28022},
{id: 130, name: “土建业务知识”, parentid: 129, cnt: 333},
{id: 131, name: “安装业务知识”, parentid: 129, cnt: 20},
{id: 73154, name: “456”, parentid: 72216, cnt: 0},
{id: 4, name: “云计价”, parentid: 1, cnt: 4497},
{id: 132, name: “计价业务知识”, parentid: 129, cnt: 9},
{id: 5, name: “计价GBQ4.0”, parentid: 1, cnt: 4879},
{id: 6, name: “钢筋算量GGJ2013”, parentid: 2, cnt: 8164},
{id: 7, name: “土建算量GCL2013”, parentid: 2, cnt: 6202},
{id: 8, name: “土建计量GTJ”, parentid: 2, cnt: 7911},
{id: 72, name: “服务产品”, parentid: 28, cnt: 417},
{id: 9, name: “钢结构算量GJG”, parentid: 2, cnt: 969},
{id: 73, name: “G+工作台”, parentid: 72, cnt: 213},
{id: 10, name: “装饰计量GDQ”, parentid: 2, cnt: 921},
{id: 74, name: “服务新干线”, parentid: 72, cnt: 84},
{id: 73163, name: “888”, parentid: 72216, cnt: 0},
{id: 11, name: “市政算量GMA”, parentid: 2, cnt: 1175},
{id: 73162, name: “777”, parentid: 72216, cnt: 0},
{id: 76, name: “加密锁”, parentid: 15, cnt: 300},
{id: 13, name: “安装算量GQI”, parentid: 2, cnt: 2680},
{id: 73164, name: “asd”, parentid: 15, cnt: 0},
{id: 15, name: “全局共性”, parentid: 28, cnt: 503},
{id: 16, name: “广联达擎洲产品”, parentid: 1, cnt: 969},
{id: 17, name: “行业计价”, parentid: 1, cnt: 1011},
{id: 72216, name: “test1”, parentid: 0, cnt: 0},
{id: 72218, name: “test12”, parentid: 72216, cnt: 0},
{id: 28, name: “软件问题库”, parentid: 0, cnt: 40884},
{id: 97, name: “建筑课堂”, parentid: 72, cnt: 120},
{id: 99, name: “造价云”, parentid: 15, cnt: 55},
{id: 101, name: “共性问题”, parentid: 15, cnt: 148},
{id: 72428, name: “计价gccp6”, parentid: 0, cnt: 0},
{id: 72110, name: “wxw”, parentid: 0, cnt: 0},
{id: 72123, name: “132222”, parentid: 72110, cnt: 0},
{id: 73147, name: “子分类2-TestStandardQAMultiCategory”, parentid: 73145, cnt: 0},
{id: 73149, name: “13”, parentid: 0, cnt: 0},
{id: 73148, name: “12”, parentid: 28, cnt: 0},
{id: 73151, name: “15”, parentid: 0, cnt: 0},
{id: 73150, name: “14”, parentid: 0, cnt: 0}
];

根据parentid,以及id对其进行递归,得到这样一组数据在这里插入图片描述
最后利用antd的tree结构将其渲染到页面上。实现这样的效果
在这里插入图片描述

如何对数据进行递归?

const gettree=(arr)=>{
        const parent={
            id:0,
            name:'全部分类'
        };
        const getnode=(id)=>{
            const children=[];
            for(let i=0;i<arr.length;i++){
                if(id===arr[i].parentid){
                    children.push({
                        id:arr[i].id,
                        name:arr[i].name,
                        children:getnode(arr[i].id)
                    })
                }
            }
            return children;
        };
        parent.children=getnode(0);
        return [parent];
    }
    console.log(gettree(college));

然后再利用antd对这组数据进行操作即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值