如下所示:
/**
* 将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
相关文章:
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
已有域名能否直接搭建网站?
,有什么在线背英语单词效率比较高的网站?
香港网站服务器数量如何影响SEO优化效果?
如何通过商城自助建站源码实现零基础高效建站?
如何设置并定期更换建站之星安全管理员密码?
Thinkphp 中 distinct 的用法解析
Python如何创建带属性的XML节点
网站网页制作专业公司,怎样制作自己的网页?
建站之星2.7模板:企业网站建设与h5定制设计专题
开源网站制作软件,开源网站什么意思?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何快速完成中国万网建站详细流程?
网站制作企业,网站的banner和导航栏是指什么?
如何用已有域名快速搭建网站?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
临沂网站制作企业,临沂第三中学官方网站?
宝塔建站助手安装配置与建站模板使用全流程解析
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在VPS电脑上快速搭建网站?
如何在阿里云服务器自主搭建网站?
如何有效防御Web建站篡改攻击?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
高防服务器租用指南:配置选择与快速部署攻略
如何通过虚拟主机快速搭建个人网站?
如何在景安服务器上快速搭建个人网站?
如何通过远程VPS快速搭建个人网站?
如何高效完成自助建站业务培训?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
设计网站制作公司有哪些,制作网页教程?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何快速配置高效服务器建站软件?
南平网站制作公司,2025年南平市事业单位报名时间?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
网站制作壁纸教程视频,电脑壁纸网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
北京网站制作的公司有哪些,北京白云观官方网站?
如何选择靠谱的建站公司加盟品牌?
已有域名如何快速搭建专属网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在IIS7上新建站点并设置安全权限?
*请认真填写需求信息,我们会在24小时内与您取得联系。