对json对象按照id精确查询并修改值
2017-11-14 09:05
281 查看
用js的写法,只要找某个json,找到了以后,就break ,结束循环,这样性能最好。之前百度查到用jquery写,但是jquery是递归效率低,所以改为原生js,jquery版本的我没试,js版本得行。
jquery版本
js版本
结果如下
jquery版本
function getAllCld(obj){ for(var o in obj){ if(typeof o == "string"){ //dosomething } else { getAllCld(o); } } }
js版本
var zNodes=[ { id:101, pId:0, name:"全部"}, { id:201, pId:101, name:"管理人员"}, { id:202, pId:101, name:"驻巡人员"}, { id:203, pId:101, name:"企业"}, { id:20488, pId:101, name:"管理处"}, { id:20101, pId:201, name:"忻府区道路运输管理所"}, { id:20102, pId:201, name:"定襄县道路运输管理所 "}, { id:20103, pId:201, name:"五台县道路运输管理所"}, { id:20104, pId:201, name:"原平市道路运输管理所"}, { id:20105, pId:201, name:"代县道路运输管理所"}, { id:20106, pId:201, name:"繁峙县道路运输管理所"}, { id:20107, pId:201, name:"宁武县道路运输管理所"}, { id:20108, pId:201, name:"静乐县道路运输管理所"}, { id:20109, pId:201, name:"神池县道路运输管理所"}, { id:20110, pId:201, name:"五寨县道路运输管理所"}, { id:20111, pId:201, name:"岢岚县道路运输管理所"}, { id:20112, pId:201, name:"河曲县道路运输管理所"}, { id:20113, pId:201, name:"保德县道路运输管理所"}, { id:20114, pId:201, name:"偏关县道路运输管理所"}, { id:20201, pId:202, name:"忻府区道路运输管理所"}, { id:20202, pId:202, name:"定襄县道路运输管理所 "}, { id:20203, pId:202, name:"五台县道路运输管理所"}, { id:20204, pId:202, name:"原平市道路运输管理所"}, { id:20205, pId:202, name:"代县道路运输管理所"}, { id:20206, pId:202, name:"繁峙县道路运输管理所"}, { id:20207, pId:202, name:"宁武县道路运输管理所"}, { id:20208, pId:202, name:"静乐县道路运输管理所"}, { id:20209, pId:202, name:"神池县道路运输管理所"}, { id:20210, pId:202, name:"五寨县道路运输管理所"}, { id:20211, pId:202, name:"岢岚县道路运输管理所"}, { id:20212, pId:202, name:"河曲县道路运输管理所"}, { id:20213, pId:202, name:"保德县道路运输管理所"}, { id:20214, pId:202, name:"偏关县道路运输管理所"}, { id:1, pId:203, name:"忻府区道路运输管理所"}, { id:2, pId:203, name:"定襄县道路运输管理所 "}, { id:3, pId:203, name:"五台县道路运输管理所"}, { id:4, pId:203, name:"原平市道路运输管理所"}, { id:5, pId:203, name:"代县道路运输管理所"}, { id:6, pId:203, name:"繁峙县道路运输管理所"}, { id:7, pId:203, name:"宁武县道路运输管理所"}, { id:8, pId:203, name:"静乐县道路运输管理所"}, { id:9, pId:203, name:"神池县道路运输管理所"}, { id:10, pId:203, name:"五寨县道路运输管理所"}, { id:11, pId:203, name:"岢岚县道路运输管理所"}, { id:12, pId:203, name:"河曲县道路运输管理所"}, { id:13, pId:203, name:"保德县道路运输管理所"}, { id:14, pId:203, name:"偏关县道路运输管理所"}, ]; for(var item in zNodes){ if(zNodes[item].id==12){ zNodes[item].pId=303; zNodes[item].checked="true"; break; } } console.log(zNodes);
结果如下
0 : {id: 101, pId: 0, name: "全部"} 1 : {id: 201, pId: 101, name: "管理人员"} 2 : {id: 202, pId: 101, name: "驻巡人员"} 3 : {id: 203, pId: 101, name: "企业"} 4 : {id: 20488, pId: 101, name: "管理处"} 5 : {id: 20101, pId: 201, name: "忻府区道路运输管理所"} 6 : {id: 20102, pId: 201, name: "定襄县道路运输管理所 "} 7 : {id: 20103, pId: 201, name: "五台县道路运输管理所"} 8 : {id: 20104, pId: 201, name: "原平市道路运输管理所"} 9 : {id: 20105, pId: 201, name: "代县道路运输管理所"} 10 : {id: 20106, pId: 201, name: "繁峙县道路运输管理所"} 11 : {id: 20107, pId: 201, name: "宁武县道路运输管理所"} 12 : {id: 20108, pId: 201, name: "静乐县道路运输管理所"} 13 : {id: 20109, pId: 201, name: "神池县道路运输管理所"} 14 : {id: 20110, pId: 201, name: "五寨县道路运输管理所"} 15 : {id: 20111, pId: 201, name: "岢岚县道路运输管理所"} 16 : {id: 20112, pId: 201, name: "河曲县道路运输管理所"} 17 : {id: 20113, pId: 201, name: "保德县道路运输管理所"} 18 : {id: 20114, pId: 201, name: "偏关县道路运输管理所"} 19 : {id: 20201, pId: 202, name: "忻府区道路运输管理所"} 20 : {id: 20202, pId: 202, name: "定襄县道路运输管理所 "} 21 : {id: 20203, pId: 202, name: "五台县道路运输管理所"} 22 : {id: 20204, pId: 202, name: "原平市道路运输管理所"} 23 : {id: 20205, pId: 202, name: "代县道路运输管理所"} 24 : {id: 20206, pId: 202, name: "繁峙县道路运输管理所"} 25 : {id: 20207, pId: 202, name: "宁武县道路运输管理所"} 26 : {id: 20208, pId: 202, name: "静乐县道路运输管理所"} 27 : {id: 20209, pId: 202, name: "神池县道路运输管理所"} 28 : {id: 20210, pId: 202, name: "五寨县道路运输管理所"} 29 : {id: 20211, pId: 202, name: "岢岚县道路运输管理所"} 30 : {id: 20212, pId: 202, name: "河曲县道路运输管理所"} 31 : {id: 20213, pId: 202, name: "保德县道路运输管理所"} 32 : {id: 20214, pId: 202, name: "偏关县道路运输管理所"} 33 : {id: 1, pId: 203, name: "忻府区道路运输管理所"} 34 : {id: 2, pId: 203, name: "定襄县道路运输管理所 "} 35 : {id: 3, pId: 203, name: "五台县道路运输管理所"} 36 : {id: 4, pId: 203, name: "原平市道路运输管理所"} 37 : {id: 5, pId: 203, name: "代县道路运输管理所"} 38 : {id: 6, pId: 203, name: "繁峙县道路运输管理所"} 39 : {id: 7, pId: 203, name: "宁武县道路运输管理所"} 40 : {id: 8, pId: 203, name: "静乐县道路运输管理所"} 41 : {id: 9, pId: 203, name: "神池县道路运输管理所"} 42 : {id: 10, pId: 203, name: "五寨县道路运输管理所"} 43 : {id: 11, pId: 203, name: "岢岚县道路运输管理所"} 44 : {id: 12, pId: 303, name: "河曲县道路运输管理所", checked: "true"} 45 : {id: 13, pId: 203, name: "保德县道路运输管理所"} 46 : {id: 14, pId: 203, name: "偏关县道路运输管理所"} length : 47 __proto__ : Array(0)
相关文章推荐
- c#-WinForm-按照学号精确查询对象
- javascript 根据给定的id集合查询对应的值,返回 json对象
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
- 将具有关联关系的两个表从hibernate查询出来转成json对象时报错
- 【JFinal】JFinal的拦截器获取和修改controller返回的json对象
- JS实现对json对象排序并删除id相同项功能示例
- xStream完美转换XML、JSON xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换; 前面有介
- 将json对象中包含的null和JSONNull属性修改成""
- 订单用户表2(用户名查询、手机号查询、选择城市、选择状态、选择月份、ID排序、添加数据、批量发货、批量删除、敏感字、修改数据)
- 用户名查询、手机号查询、选择城市、选择状态、选择月份、ID排序、添加数据、批量发货、批量删除、敏感字、修改数据)
- 用jQuery Post json对象、java端接收并还原为查询参数对象
- JS Json对象转化成字符串对象( 例:json =[{id:1} ,{id:2}] 转化“[{id:1} ,{id:2}] ”)
- php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数据,写入页面不同的id号中
- [Oracle] 查询修改序列对象的当前值
- javascript里面的数组,json对象,动态添加,修改,删除示例
- 通过查询数据库中的数据匹配在页面上:(set单条数据属性是在页面上的显示与foreach的不同) 通过ID修改提取位置表信息
- 第三课 查询指定id的单个对象
- 按照solr分面查询的查询结果顺序,添加到json后从后台发送前端
- 在Javascript操作JSON对象,增加 删除 修改
- javascript里面的数组,json对象,动态添加,修改,删除示例