递归数据格式转换
来源:互联网 发布:风冷知乎 编辑:程序博客网 时间:2024/06/05 09:10
递归数据格式转换
现有这么一种格式的数据如下:
[{ "id": 1, "name": "baidvbusbdviyw", "parentId": 0, "memo": "", "parentsFeature": ",", "empId": 3, "createTime": 1503628821000, "updateTime": 1503628821000}, { "id": 10, "name": "啦", "parentId": 0, "memo": "", "parentsFeature": ",", "empId": 3, "createTime": 1503889222000, "updateTime": 1503889222000}, { "id": 19, "name": "123123", "parentId": 0, "memo": "", "parentsFeature": ",", "empId": 3, "createTime": 1503905894000, "updateTime": 1503905894000}, { "id": 20, "name": "edwsxd", "parentId": 19, "memo": "", "parentsFeature": ",19,", "empId": 3, "createTime": 1503905923000, "updateTime": 1503905923000}, { "id": 21, "name": "cdacevdvcdsc", "parentId": 20, "memo": "", "parentsFeature": ",19,20,", "empId": 3, "createTime": 1503905953000, "updateTime": 1503905953000}, { "id": 23, "name": "啦的儿子", "parentId": 10, "memo": "", "parentsFeature": ",10,", "empId": 3, "createTime": 1503907240000, "updateTime": 1503907240000}, { "id": 24, "name": "陈蛐蛐赌场全额v", "parentId": 0, "memo": "", "parentsFeature": ",", "empId": 3, "createTime": 1503907568000, "updateTime": 1503907568000}, { "id": 25, "name": "qecvq", "parentId": 24, "memo": "", "parentsFeature": ",24,", "empId": 3, "createTime": 1503907577000, "updateTime": 1503907577000}, { "id": 26, "name": "4个4个 ", "parentId": 24, "memo": "", "parentsFeature": ",24,", "empId": 3, "createTime": 1503911753000, "updateTime": 1503911753000}, { "id": 27, "name": "啦的孙子", "parentId": 23, "memo": "", "parentsFeature": ",10,23,", "empId": 3, "createTime": 1503915740000, "updateTime": 1503915740000}, { "id": 28, "name": "啦的二儿子", "parentId": 10, "memo": "", "parentsFeature": ",10,", "empId": 3, "createTime": 1503915761000, "updateTime": 1503915761000}, { "id": 29, "name": "啦的曾孙子", "parentId": 27, "memo": null, "parentsFeature": ",10,23,27,", "empId": 3, "createTime": 1503915781000, "updateTime": 1503972701000}, { "id": 31, "name": "确认v请问v", "parentId": 30, "memo": "", "parentsFeature": ",30,", "empId": 3, "createTime": 1503974430000, "updateTime": 1503974430000}, {"id": "asdvasdva", "name": "啦啦啦啦", "parentId": 0}, { "id": "vasdvwrvwdqvw", "name": "啦啦啦陈摩的常年卧", "parentId": "asdvasdva"}];
想将其转化成为这样的
[ { "name": "baidvbusbdviyw", "children": [] }, { "name": "啦", "children": [ { "name": "啦的儿子", "children": [ { "name": "啦的孙子", "children": [ { "name": "啦的曾孙子", "children": [] } ] } ] }, { "name": "啦的二儿子", "children": [] } ] }, { "name": "123123", "children": [ { "name": "edwsxd", "children": [ { "name": "cdacevdvcdsc", "children": [] } ] } ] }, { "name": "陈蛐蛐赌场全额v", "children": [ { "name": "qecvq", "children": [] }, { "name": "4个4个 ", "children": [] } ] }, { "name": "啦啦啦啦", "children": [ { "name": "啦啦啦陈摩的常年卧", "children": [] } ] }]
code
var folderTree = new FolderTree(); console.log(JSON.stringify(folderTree.buildGroup())); function FolderTree() { this.folderData = []; this.localFolderList = getData(); this.testChildFolder = function(id, localFolderList){ var folderArr = []; for (var i = 0; i < localFolderList.length; i++) { if (id == localFolderList[i].parentId) { folderArr.push(localFolderList[i]); } } return folderArr; }; this.getFolderName = function(folderId){ var folderName = ""; var folderNameArr = []; var localFolderList = this.localFolderList; localFolderList.map(function (item) { folderNameArr.push(item.name); if (folderId == item.id) { folderName = item.name; } }); if (folderId || folderId == "0") { if (folderName != "") { return folderName; } else { return "(无)"; } } else { return folderNameArr; } }; this.fndChildFolder = function (folder, $thisChildren) { var $thisChildren = $thisChildren || []; var childrenList = this.testChildFolder(folder.id, this.localFolderList); var parentName = this.getFolderName(folder.parentId); if (folder.parentId == 0) { if (childrenList.length > 0) { var data = { "name": folder.name, "children": [] }; this.folderData.push(data); for (var i = 0; i < childrenList.length; i++) { this.fndChildFolder(childrenList[i], this.folderData); } } else { var data = { "name": folder.name, "children": [] }; this.folderData.push(data); } } else { if (childrenList.length > 0) { var data = { "name": folder.name, "children": [] }; var thisChildren = []; for (var i = 0; i < $thisChildren.length; i++) { if (parentName == $thisChildren[i].name) { $thisChildren[i].children.push(data); thisChildren = $thisChildren[i].children; } } for (var i = 0; i < childrenList.length; i++) { this.fndChildFolder(childrenList[i], thisChildren); } } else { var data = { "name": folder.name, "children": [] }; var thisChildren = []; for (var i = 0; i < $thisChildren.length; i++) { if (parentName == $thisChildren[i].name) { $thisChildren[i].children.push(data); thisChildren = $thisChildren[i].children; } } } } return this.folderData; }; this.buildGroup = function () { for (var i = 0; i < this.localFolderList.length; i++) { this.fndChildFolder(this.localFolderList[i]); } return this.folderData; } } function getData(){ var data = [{"id":1,"name":"baidvbusbdviyw","parentId":0,"memo":"","parentsFeature":",","empId":3,"createTime":1503628821000,"updateTime":1503628821000},{"id":10,"name":"啦","parentId":0,"memo":"","parentsFeature":",","empId":3,"createTime":1503889222000,"updateTime":1503889222000},{"id":19,"name":"123123","parentId":0,"memo":"","parentsFeature":",","empId":3,"createTime":1503905894000,"updateTime":1503905894000},{"id":20,"name":"edwsxd","parentId":19,"memo":"","parentsFeature":",19,","empId":3,"createTime":1503905923000,"updateTime":1503905923000},{"id":21,"name":"cdacevdvcdsc","parentId":20,"memo":"","parentsFeature":",19,20,","empId":3,"createTime":1503905953000,"updateTime":1503905953000},{"id":23,"name":"啦的儿子","parentId":10,"memo":"","parentsFeature":",10,","empId":3,"createTime":1503907240000,"updateTime":1503907240000},{"id":24,"name":"陈蛐蛐赌场全额v","parentId":0,"memo":"","parentsFeature":",","empId":3,"createTime":1503907568000,"updateTime":1503907568000},{"id":25,"name":"qecvq","parentId":24,"memo":"","parentsFeature":",24,","empId":3,"createTime":1503907577000,"updateTime":1503907577000},{"id":26,"name":"4个4个 ","parentId":24,"memo":"","parentsFeature":",24,","empId":3,"createTime":1503911753000,"updateTime":1503911753000},{"id":27,"name":"啦的孙子","parentId":23,"memo":"","parentsFeature":",10,23,","empId":3,"createTime":1503915740000,"updateTime":1503915740000},{"id":28,"name":"啦的二儿子","parentId":10,"memo":"","parentsFeature":",10,","empId":3,"createTime":1503915761000,"updateTime":1503915761000},{"id":29,"name":"啦的曾孙子","parentId":27,"memo":null,"parentsFeature":",10,23,27,","empId":3,"createTime":1503915781000,"updateTime":1503972701000},{"id":31,"name":"确认v请问v","parentId":30,"memo":"","parentsFeature":",30,","empId":3,"createTime":1503974430000,"updateTime":1503974430000},{"id":"asdvasdva","name":"啦啦啦啦","parentId":0},{"id":"vasdvwrvwdqvw","name":"啦啦啦陈摩的常年卧","parentId":"asdvasdva"}]; return data; }
如果有不当的地方请留言通知我,谢谢!
阅读全文
0 0
- 递归数据格式转换
- 数据格式转换
- 数据格式转换(转载)
- 数据格式转换专题
- 数据格式介绍和转换
- 常见数据格式的转换
- C#数据格式转换
- c++ 数据格式转换代码
- stingstream的数据格式转换
- GPS数据格式转换
- 不同数据格式转换
- Mahout0.6-数据格式转换
- QT各种数据格式转换
- GPS数据格式转换
- OpenCV数据格式转换
- java 数据格式相互转换
- R语言-数据格式转换
- js数据格式转换
- Spring CustomPropertyEditor
- dex文件解析
- 程序片段----新建文件夹
- 以太坊学习(一):利用Geth搭建私有链
- 数字统计二分实现
- 递归数据格式转换
- 【前端知识点】三次握手与四次挥手之TCP协议简析
- ]scikit-learn进行机器学习
- C语言Link_List简单实现
- golang
- 调用Android自带浏览器打开网页
- Java后端学习资源群
- xlrd/xlwt与openpyxl的读写效率比较
- 大数据(十七)Hive【Hive介绍】