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);