1、树形菜单添加序号(prop),比如 1-1/1-1-1/1-1-2 这样的

const setIndex = (data) => {
            let queue = [...data];
            let loop = 0;
            while (queue.length > 0) {
                loop++
                [...queue].forEach((child, i) => {
                    queue.shift()
                    if (loop == 1) {
                       child.prop = i + 1 + "";
                    }
                    if (child.children && child.children.length > 0) {
                        for (let ci = 0; ci < child.children.length; ci++) {
                            child.children[ci].prop = child.prop + "-" + (ci + 1)
                        }
                        queue.push(...child.children)
                    }
                })
            }
            return data;
        }

2、只要最后一级数据数据

const filterLastTree = (treeList, newTreeList) => {
            treeList.map((item, index) => {
                let tempData: treeItem = {
                    label: item.label,
                    prop: item.prop,
                };
                if (item.children && item.children.length > 0) {
                    newTreeList.push(
                        ...filterLastTree(item.children, []),
                    );
                } else {
                    newTreeList.push(tempData);
                }
            });
            return newTreeList;
        };

调用:filterLastTree = (treeList, [])

3、完整树状结构数据重组

const filterTree = (treeList, newTreeList) => {
            treeList.map((item, index) => {
                let tempData: treeItem = {
                    label: item.label,
                    prop: item.prop,
                    children: [],
                };
                if (item.children && item.children.length > 0) {
                    filterTree(item.children, tempData.children);
                }
                newTreeList.push(tempData);
            });
            return newTreeList;
        };

调用:filterTree (treeList, [])

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐