javascript将list转换成树状结构的实例
发布时间 - 2026-01-11 03:09:40 点击率:次如下所示:
/**
* 将list装换成tree
* @param {Object} myId 数据主键id
* @param {Object} pId 数据关联的父级id
* @param {Object} list list集合
*/
function listToTree(myId,pId,list){
function exists(list, parentId){
for(var i=0; i<list.length; i++){
if (list[i][myId] == parentId) return true;
}
return false;
}
var nodes = [];
// get the top level nodes
for(var i=0; i<list.length; i++){
var row = list[i];
if (!exists(list, row[pId])){
nodes.push(row);
}
}
var toDo = [];
for(var i=0; i<nodes.length; i++){
toDo.push(nodes[i]);
}
while(toDo.length){
var node = toDo.shift(); // the parent node
// get the children nodes
for(var i=0; i<list.length; i++){
var row = list[i];
if (row[pId] == node[myId]){
//var child = {id:row.id,text:row.name};
if (node.children){
node.children.push(row);
} else {
node.children = [row];
}
toDo.push(row);
}
}
}
return nodes;
}
var list=[
{"ids":1,"parendId":0,"name":"Foods",url:"wwww"},
{"ids":2,"parentId":1,"name":"Fruits"},
{"ids":3,"parentId":1,"name":"Vegetables"},
{"ids":4,"parentId":2,"name":"apple"},
{"ids":5,"parentId":2,"name":"orange"},
{"ids":6,"parentId":3,"name":"tomato"},
{"ids":7,"parentId":3,"name":"carrot"},
{"ids":8,"parentId":3,"name":"cabbage"},
{"ids":9,"parentId":3,"name":"potato"},
{"ids":10,"parentId":3,"name":"lettuce"},
{"ids":11,"parendId":0,"name":"Foods"},
{"ids":12,"parentId":11,"name":"Fruits"},
{"ids":13,"parentId":11,"name":"Vegetables"},
{"ids":14,"parentId":12,"name":"apple"},
{"ids":15,"parentId":12,"name":"orange"},
{"ids":16,"parentId":13,"name":"tomato"},
{"ids":17,"parentId":13,"name":"carrot"},
{"ids":18,"parentId":13,"name":"cabbage"},
{"ids":19,"parentId":13,"name":"potato"},
{"ids":20,"parentId":13,"name":"lettuce"}
];
console.log(JSON.stringify(listToTree("ids","parentId",list)));
console.log(listToTree("ids","parentId",list));
以上这篇javascript将list转换成树状结构的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# javascript
# 树状图
# javascript如何用递归写一个简单的树形结构示例
# JavaScript几种形式的树结构菜单
# JavaScript解析任意形式的json树型结构展示
# js用于树型结构级联选择
# JavaScript 处理树数据结构的方法示例
# 详解JavaScript树结构
# js将列表组装成树结构的两种实现方式分享
# 给大家
# 树状
# 希望能
# 所示
# 这篇
# 转换成
# 小编
# 大家多多
# 主键
# function
# lt
# length
# var
# listToTree
# exists
# parentId
# return
# row
# level
# toDo
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
在Oracle关闭情况下如何修改spfile的参数
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
原生JS获取元素集合的子元素宽度实例
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在云主机上快速搭建网站?
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
Laravel怎么使用Intervention Image库处理图片上传和缩放
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
linux写shell需要注意的问题(必看)
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
大型企业网站制作流程,做网站需要注册公司吗?
如何有效防御Web建站篡改攻击?
如何在建站宝盒中设置产品搜索功能?
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
电商网站制作价格怎么算,网上拍卖流程以及规则?
奇安信“盘古石”团队突破 iOS 26.1 提权
实例解析Array和String方法
如何在搬瓦工VPS快速搭建网站?
如何在万网自助建站平台快速创建网站?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
在线教育网站制作平台,山西立德教育官网?
Python文件异常处理策略_健壮性说明【指导】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Python文本处理实践_日志清洗解析【指导】
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
JavaScript如何实现音频处理_Web Audio API如何工作?
利用python获取某年中每个月的第一天和最后一天
个人摄影网站制作流程,摄影爱好者都去什么网站?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
iOS中将个别页面强制横屏其他页面竖屏
详解MySQL数据库的安装与密码配置
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何创建自定义中间件?(Middleware代码示例)
Android自定义listview布局实现上拉加载下拉刷新功能
大同网页,大同瑞慈医院官网?

