json对象循环遍历
来源:互联网 发布:snmp监控linux 编辑:程序博客网 时间:2024/06/06 02:53
测试的json对象:
var testJson={ "errno": 0, "errmsg": "成功", "data": { "config_list": { "reg_conf": { "s":{ "ss":'ss', "m":{ "mm":'mm', "j":{ "leng":'22', "sf":{ "gf":'ss' } } } } } } } }
需要将json对象变为同一级:
方法一:
循环递归
const formatFromServer=(data,formatData={})=>{ for(item in data){ if(isJsonObject(data[item])){ formatFromServer(data[item],formatData); }else{ formatData[item]=data[item]; } } return formatData;}console.time("循环");formatFromServer(testJson);console.timeEnd("循环");
方法二:(类似java中文件夹遍历)
const formatFromServer=(data,formatData={})=>{ let ma=[]; for(item in data){ if(isJsonObject(data[item])){ ma.push(data[item]); }else{ formatData[item]=data[item]; } } for(let i=0;i<ma.length;i++){ for(item in ma[i]){ if(isJsonObject(ma[i][item])){ ma.push(ma[i][item]); }else{ formatData[item]=ma[i][item]; } } } return formatData;}console.time("循环");formatFromServer(testJson);console.timeEnd("循环");
经过测试,两个运行时间:
递归:0.55左右
遍历:0.66左右
为什么递归的时间反而比较少?
因为在文件夹遍历中是不停地取数组的长度,这个花费时间比较长,相当于多遍历一次数组,时间复杂度变成了O(n^2).
阅读全文
0 0
- json对象循环遍历
- 在js中循环遍历json对象
- 循环遍历json
- jQuery遍历JSON对象
- 遍历读取Json对象
- jQuery 遍历 JSON 对象
- jQuery 遍历 JSON 对象
- jQuery 遍历 JSON 对象
- jQuery 遍历 JSON 对象
- Json对象遍历
- json对象的遍历
- coffeescript遍历json对象
- java遍历json对象
- jQuery 遍历 JSON 对象
- $.each遍历json对象
- $.each遍历json对象
- JSON对象遍历
- Javascript遍历json对象
- bootstrap自定义样式-bootstrap侧边导航栏的实现
- 动态规划(dynamic programming)
- JavaScript初接触
- 稳定排序
- LeetCode 108 Convert Sorted Array to Binary Search Tree(二分 + 递归建树)
- json对象循环遍历
- C程序设计-C语言概述
- java之TreeMap
- hdu 1166 敌兵布阵
- ICMP flood(ICMP洪水攻击)
- epoll
- 使用4个线程拷贝一个文件,实现断点下载。比如:这个文件500M,分四段下载。
- 面试总结——Java高级工程师(三)
- ActiveMQ(四)--ActiveMQ实现