对json对象按照id精确查询并修改值

来源:互联网 发布:oracle数据库出现问题 编辑:程序博客网 时间:2024/04/30 07:24

用js的写法,只要找某个json,找到了以后,就break ,结束循环,这样性能最好。之前百度查到用jquery写,但是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)
阅读全文
0 0
原创粉丝点击