js中怎么循环编历json并修改其中值?

时间:2023-02-01 15:04:40
新手js,目前用reactjs开发前端页面,遇到一个问题,举个问题例子

var  content = {
  id : '0001',
  edit : false,
  children :  [
     {
         id : '1001',
         edit : false,
         children : [
               {
                    id : '2002',
                    edit : false,
               },
              {
                   id : '2002',
                   edit : false,
              },
           ],
     },
        {
         id : '1002',
         edit : false,
     },
    ],
  }
   ]


我想修改当其中 id为  ‘2002’的 edit为 true,怎么有一个通用方法修改?

1 个解决方案

#1



var  content = {
  id : '0001',
  edit : false,
  children :  [
     {
         id : '1001',
         edit : false,
         children : [
               {
                    id : '2002',
                    edit : false,
               },
              {
                   id : '2002',
                   edit : false,
              },
           ],
     },
        {
         id : '1002',
         edit : false,
     },
    ],
  }

function each(obj,id,v) {
if (obj.id==id)
obj.edit = v;
if (obj.children)
for (var i = 0, len = obj.children.length; i < len; i++)
each(obj.children[i],id,v);
}
each(content,"2002",true);
console.log(content);

#1



var  content = {
  id : '0001',
  edit : false,
  children :  [
     {
         id : '1001',
         edit : false,
         children : [
               {
                    id : '2002',
                    edit : false,
               },
              {
                   id : '2002',
                   edit : false,
              },
           ],
     },
        {
         id : '1002',
         edit : false,
     },
    ],
  }

function each(obj,id,v) {
if (obj.id==id)
obj.edit = v;
if (obj.children)
for (var i = 0, len = obj.children.length; i < len; i++)
each(obj.children[i],id,v);
}
each(content,"2002",true);
console.log(content);