/****** * list to tree 转换 * dataList : 数据集合 * keyName :id名称 * parentName :父ID名称 * pidValue : 父id默认值 默认为空 * haschildName : 是否具有子节点名称 * haschild : 是否具有子节点 */ this.listToTree = function (dataList, keyName, parentName, pidValue, haschildName, haschild) { var object = []; for (var i in dataList) { var data = dataList[i]; var keyValue = data['' + keyName + '']; if (data['' + parentName + ''] == pidValue) { //父节点 默认为'' if (data['' + haschildName + ''] == haschild) {//是否具有子节点 Y:具有 N:没有 data.CHILDREN = this.listToTree(dataList, keyName, parentName, keyValue, haschildName, haschild); } object.push(data); } } return object; }; this.getCatalogParentLink = function (dataList, resList, catalogid) { for (var i = 0; i < dataList.length; i++) { var json = dataList[i]; if (json.CATALOGID == catalogid) { resList.push(json); if (json.PARENT != "" && json.PARENT != null) { this.getCatalogParentLink(dataList, resList, json.PARENT); } } } }; /****** * tree to list 转换 * treeList : tree集合名称 * dataList:节点存放处 为最真实的数据值 * childrenName 子节点 存放处List * haschildName 是否具有子节点key名称 * haschildValue 是否具有子节点value * ***/ this.treeToList = function (treeObject, dataList, childrenName, haschildName, haschildValue) { if (treeObject['' + haschildName + ''] == haschildValue) { //是否具有子节点 Y:具有 N:没有 var childrenTree = treeObject['' + childrenName + '']; if (childrenTree != undefined && childrenTree != null) { for (var i in childrenTree) { this.treeToList(childrenTree[i], dataList, childrenName, haschildName, haschildValue); } } // treeObject[''+childrenName+''] = null; // 移除子节点集合 } dataList.push(treeObject); };
转载于:https://my.oschina.net/yangcaoling/blog/784582