JavaScriptfor循环的树形菜单栏·

在此声明一下嗷兄弟闷儿!我没写样式纯粹是console.log()打印控制面板的!

全局声明一个data;

let data;

然后去获取到json的假数据

let xhr = new XMLHttpRequest();
// 设置请求方式和请求地址
xhr.open('get', './js/menu.json', true);
// 发送请求
xhr.send();
// 接收返回的响应数据
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        data = JSON.parse(xhr.responseText);
        // 调用展示商品的函数
        console.log(data);
        fun(data);
    }
};

然后function一个变量进行调用!加上下面的自己去看吧,家人们

function fun(data) {
    let arr = [];

    for (let i in data) {
        if (data[i].pid == 0) {
            data[i].children = []; // 初始化 children 数组
            for (let j in data) {
                if (data[j].pid == data[i].id) { // 找到当前节点的子节点
                    data[i].children.push(data[j]); // 将子节点添加到 children 数组中
                }
                data[j].childrens = [];
                for (let k in data) {
                    if (data[k].pid == data[j].id) {
                        data[j].childrens.push(data[k]);
                    }
                }
            }
            arr.push(data[i]); // 将构建好的根节点添加到 arr 中
        }
    }

    console.log(arr);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值