如下所示:
/**
* 将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
相关文章:
开源网站制作软件,开源网站什么意思?
高防服务器:AI智能防御DDoS攻击与数据安全保障
c# 在高并发场景下,委托和接口调用的性能对比
如何选择PHP开源工具快速搭建网站?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何快速搭建高效服务器建站系统?
如何选择靠谱的建站公司加盟品牌?
安徽网站建设与外贸建站服务专业定制方案
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星会员如何解锁更多建站功能?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星后台管理系统如何操作?
建站之星24小时客服电话如何获取?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
宿州网站制作公司兴策,安徽省低保查询网站?
如何通过VPS搭建网站快速盈利?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何在宝塔面板创建新站点?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
网站好制作吗知乎,网站开发好学吗?有什么技巧?
建站之星如何实现网站加密操作?
如何用好域名打造高点击率的自主建站?
建站之星安装后如何配置SEO及设计样式?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何快速搭建响应式可视化网站?
,sp开头的版面叫什么?
建站主机如何选?性能与价格怎样平衡?
香港服务器租用费用高吗?如何避免常见误区?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
内部网站制作流程,如何建立公司内部网站?
建站之星在线客服如何快速接入解答?
如何在IIS服务器上快速部署高效网站?
html制作网站的步骤有哪些,iapp如何添加网页?
网站制作软件有哪些,制图软件有哪些?
学校建站服务器如何选型才能满足性能需求?
如何在宝塔面板中修改默认建站目录?
黑客如何利用漏洞与弱口令入侵网站服务器?
如何用景安虚拟主机手机版绑定域名建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。