数据结构改变
来源:互联网 发布:php查询系统源码 编辑:程序博客网 时间:2024/06/03 16:17
原始数据格式
var data={ "soft":"1111", "soft.type":"1111", "soft.condition":"1111", "wonder":"1111", "wonder.WONDER":"1111", "wonder.WONDER.BS_TEST":"1111", "wonder.WONDER.DB2数据类型":"1111", "wonder.WONDER.DEP_TABLE":"1111", "wonder.WONDER.DIC_TABLE":"1111", "wonder.WONDER.TABLE8_NF":"1111", "wonder.WONDER.基本信息":"1111", "wonder.WONDER.姓名":"1111", "wonder.WONDER.数据类型":"1111"}
转为
var result=[{ "name":"soft", "val":"1111", "children":[{ "name":"type", "val":"1111", },{ "name":"condition", "val":"1111", }]},{ "name":"wonder", "val":"1111", "children":[{ "name":"WONDER", "val":"1111", "children":[{ "name":"BS_TEST", "val":"1111" },{ "name":"DB2数据类型", "val":"1111" },{ "name":"DEP_TABLE", "val":"1111" },{ "name":"姓名", "val":"1111" },{ "name":"数据类型", "val":"1111" }] }]}]
函数
var change = (data)=>{ var result = [],tmp = {},route,parent,val; for(var item in data){ route = item.split('.'); val = { "name":route[route.length-1], "val":data[item] }; parent = route.filter((e,i,arr)=>i<arr.length-1).join('.'); if(parent!=''){ tmp[parent] = tmp[parent] || result[result.push({})-1]; tmp[parent].children = tmp[parent].children || []; } if(item in tmp){ tmp[item].name = val.name; tmp[item].val = val.val; }else{ if(parent!=''){ tmp[item] = tmp[parent].children[tmp[parent].children.push(val)-1]; }else{ tmp[item] = tmp[item] || result[result.push(val)-1]; } } } delete tmp; return result;}
阅读全文
0 0
- 数据结构改变
- 数据结构大小改变为何引起性能下降?
- 数据结构单项链表C++实现改变C版本
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变
- 改变...
- 改变
- 改变
- 链表拼接
- C和指针14章 预处理器笔记
- Spring中ClassPathXmlApplicationContext和ApplicationContext 的简单使用
- Java三大器之拦截器(Interceptor)的实现原理及代码示例
- [LintCode 124] 最长连续序列(Python)
- 数据结构改变
- [C专家]分析C语言声明——关于联合
- EventBus activity收不到post的消息原因分析
- VMBox挂载共享文件时可能出现的问题以及对应的解决办法
- MFC 资源脚本问题:fatal error CVT1100: 资源重复。类型: AFX DIALOG LAYOUT
- 解決Android嵌入百度地圖出現黑屏現象
- xml
- segue的几种模式
- 相同的项目在不同版本的tomcat上部署启动报错: java.lang.AbstractMethodError