标签:
今天遇到一个自己构造树的情况,树是动态的,预先不知道根节点,用的是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 }
Ztree中simpleData是怎么转换成标准ztree数组对象的
标签:
原文地址:http://www.cnblogs.com/xuwei09/p/4567185.html