Ztree中simpleData是怎么转换成标准ztree数组对象的

今天遇到一个自己构造树的情况,树是动态的,预先不知道根节点,用的是easyUI中的tree,于是参考了下Ztree中的实现,恍然大悟,遂记之:

 1 transformTozTreeFormat: function(setting, sNodes) {
 2             var i,l,
 3             key = setting.data.simpleData.idKey,
 4             parentKey = setting.data.simpleData.pIdKey,
 5             childKey = setting.data.key.children;
 6             if (!key || key=="" || !sNodes) return [];
 7
 8             if (tools.isArray(sNodes)) {
 9                 var r = [];
10                 var tmpMap = [];
11                 for (i=0, l=sNodes.length; i<l; i++) {
12                     tmpMap[sNodes[i][key]] = sNodes[i];
13                 }
14                 for (i=0, l=sNodes.length; i<l; i++) {
15                     if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
16                         if (!tmpMap[sNodes[i][parentKey]][childKey])
17                             tmpMap[sNodes[i][parentKey]][childKey] = [];
18                         tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
19                     } else {
20                         r.push(sNodes[i]);
21                     }
22                 }
23                 return r;
24             }else {
25                 return [sNodes];
26             }
27         }
时间: 2024-08-27 03:45:26

Ztree中simpleData是怎么转换成标准ztree数组对象的的相关文章

微信消息中的CreateTime转换成标准格式的时间

/** * 将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-dd HH:mm:ss) * * @param createTime 消息创建时间 * @return */ public static String formatTime(String createTime) { // 将微信传入的CreateTime转换成long类型,再乘以1000 long msgCreateTime = Long.parseLong(createTime) * 1000L; DateFo

c语言代码编程题汇总:将字符串中的大写字母转换成小写字母

将字符串中的大写字母转换成小写字母 程序代码如下: 1 /* 2 2017年3月8日21:21:46 3 功能:将字符串中的大写字母转换成小写字母 4 */ 5 /* 6 #include"stdio.h" 7 8 int main() 9 { 10 int n = 0; 11 12 char a[100]; 13 14 printf("please input a string:"); 15 16 gets(a); 17 18 for(int i = 0 ;a[i

获取listboxitem在ListBox中的index并转换成abcd

原文 获取listboxitem在ListBox中的index并转换成abcd 截图如下: 1.实现Converter  获取到listbox,并得到listitem在listbox中的index public class ItemContainerToZIndexConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globaliza

C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)

这篇博客将要讨论的是关于: 如何从C#的source以及注释, 生成一份Word格式的关于各个类,函数以及成员变量的说明文档. 他的大背景如下...... 最近的一个项目使用C#, 分N个模块, 在项目的里程碑的时候, 日本的总公司要检查我们的成果物. 成果物包括源代码, 概要设计式样书(SD,System Design), 详细设计式样书(PD, Program Design), 自动化测试等等. 源代码必须要符合编码规范(每个函数都要有注释, 方法变量的命名规则等...) 这些检查都很正常,

Linux c字符串中不可打印字符转换成16进制

本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的不可打印字符转换成16进制,此处提供一个函数供使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 void printhex(unsigned char *src,int len) {     

把一维数组转换成二维数组

有一个一维数组,想把它变成m*n形式的二位数组, $arr = array(....); // 一维数组 $m = ceil(count($arr)/n); $array = array(); for ($i = 0, $j = 0; $i < $m; $i++) { for ($k = 0; $k < n; $k++) { $temp = $arr[$j++]; if($temp) $array[$i][$k] = $temp; } } 把一维数组转换成二维数组

json里的日期字符串 怎么 转换成 javascript 的 Date 对象?

“/Date(1232035200000)/” 怎么转换成  javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字符串,字符串内容是 /Date(ticks)/,其中 ticks 表示从 epoch (UTC) 开始的毫秒数.因此,UTC 时间 1989 年 11 月 29 日 4:55:30 AM 将编码为“/Date(628318530718)/”.

java list map转换成二维数组

/** * *@Title: ListToArray *@Description: list列表转换成二维数组 *@Author: Administrator *@Since: 2018年1月7日下午2:01:25 *@param: @param list *@param: @param KeyLenght每行的列数,按最长的计算 *@param: @return *@return Object[][] */ private Object[][] ListToArray(List<Map<St

C#中,JSON字符串转换成对象。

在前台提交(post)的数据中.除了强类型的数据外,还有一个额外的json数据提交 在这里我的办法是,在前台把json对象转换成字符串,然后提交. 测试demo 前台: @using(Html.BeginForm()) { <input type="text" id="json" name="json"/> <input type="submit" value="提交"/> } &l