当前位置: 首页 > news >正文

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);
}

http://www.lryc.cn/news/409377.html

相关文章:

  • easyExcel 3.x以上版本导入数据后,再把错误信息导出,外加自定义RGB背景色、行高、宽度等
  • React的img图片路径怎么写
  • UGUI优化篇--UGUI合批
  • FineBI连接MySQL5.7
  • 基于tkinter的学生信息管理系统之登录界面和主界面菜单设计
  • web基础以及http协议
  • DataEase一键部署:轻松搭建数据可视化平台
  • 网络安全相关竞赛比赛
  • Vscode——如何快速搜索项目工程中的某个文件的位置
  • Kubernetes 正在弃用 Docker?Docker将何去何从?
  • 编程语言「描述符」漫谈——以C++与Rust为例的行为声明与类型描述
  • 电脑屏幕录制软件哪个好?推荐3款,满足各种录制需求
  • 大模型学习应用 1:用 itrex 创新高效实现 LLM 的部署和微调
  • 【Android】碎片—动态添加、创建Fragment生命周期、通信
  • 前端 SSE 长连接
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • Python酷库之旅-第三方库Pandas(051)
  • linux timestamp
  • Vue.js 搭建大屏可视化项目
  • Linux:进程信号(二.信号的保存与处理、递达、volatile关键字、SIGCHLD信号)
  • 最值得推荐的5个AI大模型API
  • PyTest+Allure生成测试报告
  • ROS2教程(10) - 编写接收程序、添加frame - Linux
  • Arraylist与LinkedList的区别
  • Nestjs使用Redis的最佳实践
  • Cadence23学习笔记(十四)
  • socket 编程
  • 如何使用 HTTPie 进行高效的 HTTP 请求
  • Lingo求解器百度云下载 ling 8.0/lingo 18安装包资源分享
  • 文献综述如何为研究的理论框架做出贡献