【扁平数据转树状数据最快方法】

该文章提供了一个JavaScript函数示例,用于将扁平结构的菜单数据转换为树形结构。函数名为`buildTree`,它遍历输入的数据数组,创建一个映射对象,并根据`superior`字段构建子节点关系。最后返回根节点组成的树结构。
摘要由CSDN通过智能技术生成

扁平数据转树状数据最快方法

示例代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var menu = [{
            id: 1,
            menuName: '地图显示',
            path: '/view',
            sort: 1,
            superior: null,
            components: '/common/secondLevelMenu',
        },
        {
            id: 2,
            sort: 1,
            menuName: '基础地图',
            path: '/view3',
            superior: 1,
            components: '/common/secondLevelMenu2',
        },
        {
            id: 3,
            sort: 1,
            menuName: '基础地图',
            path: '/view3',
            superior: 2,
            components: '/common/secondLevelMenu2',
        },
        {
            id: 4,
            sort: 1,
            menuName: '基础地图',
            path: '/view3',
            superior: 3,
            components: '/common/secondLevelMenu2',
        }
        ]
        function buildTree (data) {
            const map = {};
            const tree = [];
            data.forEach(node => {
                map[node.id] = node;//让枚举数据和node公用同一个内存 主要
                node.children = [];
            });
            data.forEach(node => {
                if (node.superior) {
                    map[node.superior].children.push(node);
                } else {
                    tree.push(node);
                }
            });
            return tree;
        }
        console.log(buildTree(menu));
    </script>
</body>

</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值