如下所示:
/**
* 将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
相关文章:
网站制作公司排行榜,四大门户网站排名?
浅析上传头像示例及其注意事项
七夕网站制作视频,七夕大促活动怎么报名?
建站主机类型有哪些?如何正确选型
香港服务器租用每月最低只需15元?
专业网站建设制作报价,网页设计制作要考什么证?
北京网站制作公司哪家好一点,北京租房网站有哪些?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
如何在万网自助建站中设置域名及备案?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
网站设计制作企业有哪些,抖音官网主页怎么设置?
如何做网站制作流程,*游戏网站怎么搭建?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何自定义建站之星网站的导航菜单样式?
中山网站推广排名,中山信息港登录入口?
建站之星如何保障用户数据免受黑客入侵?
如何在企业微信快速生成手机电脑官网?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
孙琪峥织梦建站教程如何优化数据库安全?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
家庭服务器如何搭建个人网站?
建站上市公司网站建设方案与SEO优化服务定制指南
如何确认建站备案号应放置的具体位置?
如何通过虚拟主机快速搭建个人网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
在线制作视频网站免费,都有哪些好的动漫网站?
如何在建站主机中优化服务器配置?
建站之星下载版如何获取与安装?
在线制作视频的网站有哪些,电脑如何制作视频短片?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
如何制作算命网站,怎么注册算命网站?
建站之星会员如何解锁更多建站功能?
Python路径拼接规范_跨平台处理说明【指导】
建站之星免费版是否永久可用?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
宝塔新建站点报错如何解决?
小型网站制作HTML,*游戏网站怎么搭建?
建站主机核心功能解析:服务器选择与网站搭建流程指南
定制建站流程步骤详解:一站式方案设计与开发指南
制作网站的软件免费下载,免费制作app哪个平台好?
大连网站设计制作招聘信息,大连投诉网站有哪些?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
建站之星在线版空间:自助建站+智能模板一键生成方案
建站之星安装提示数据库无法连接如何解决?
微信h5制作网站有哪些,免费微信H5页面制作工具?
高端网站建设与定制开发一站式解决方案 中企动力
昆明网站制作哪家好,昆明公租房申请网上登录入口?
*请认真填写需求信息,我们会在24小时内与您取得联系。