ztree 数组和树结构互转算法
2024-09-06 04:00:43
//树转化为数组
transformToArrayFormat: function (setting, nodes) {
if (!nodes) return [];
var childKey = setting.data.key.children,
r = [];
if (tools.isArray(nodes)) {
for (var i=0, l=nodes.length; i<l; i++) {
r.push(nodes[i]);
if (nodes[i][childKey])
r = r.concat(data.transformToArrayFormat(setting, nodes[i][childKey]));
}
} else {
r.push(nodes);
if (nodes[childKey])
r = r.concat(data.transformToArrayFormat(setting, nodes[childKey]));
}
return r;
},
//数组转化为树
transformTozTreeFormat: function(setting, sNodes) {
var i,l,
key = setting.data.simpleData.idKey,
parentKey = setting.data.simpleData.pIdKey,
childKey = setting.data.key.children;
if (!key || key=="" || !sNodes) return []; if (tools.isArray(sNodes)) {
var r = [];
var tmpMap = [];
for (i=0, l=sNodes.length; i<l; i++) {
tmpMap[sNodes[i][key]] = sNodes[i];
}
for (i=0, l=sNodes.length; i<l; i++) {
if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
if (!tmpMap[sNodes[i][parentKey]][childKey])
tmpMap[sNodes[i][parentKey]][childKey] = [];
tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
} else {
r.push(sNodes[i]);
}
}
return r;
}else {
return [sNodes];
}
}
最新文章
- python 面向对象(进阶篇)
- python学习笔记 ——python写的猜数字游戏 002
- 【JS复习笔记】04 数组
- iOS使用静态变量
- 执行sh文件 进行MongoDB的业务逻辑导入
- 如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证?
- Codeforces Round #185 (Div. 2) A. Whose sentence is it? 水题
- [GitPython]使用python管理你的git库
- “假如花千骨在杭州拍摄” 主题Cosplay
- 点击页面其它地方隐藏该div的两种思路
- Q promise API简单翻译
- C语言博客作业—字符数组
- 《Language Implementation Patterns》之 强类型规则
- 皮尔森相似度计算举例(R语言)
- Windows Server 2016-Powershell新建用户补充
- Python编程高级特性--迭代器
- Hive 系列(二)权限管理
- spring boot之org.springframework.boot.context.TypeExcludeFilter
- Rsyslog的三种传输协议简要介绍
- bootstrap系统学习