在我的应用程序中,我创建了一个基于类似于此的JSON的JavaScript对象:
{
name: "root",
id: 112,
children: [
{
name: "child one",
id: 231,
children: [
{name: "grand child 1", id: 334, children: []},
{name: "grand child 2", id: 784, children: []}
]
},
{
name: "child two",
id: 343,
children: []
}
]
}
我如何通过他的身份删除任何儿童?请注意,我不知道节点的静态路径,例如id == 334,所以我想知道如何通过知道它的id来删除该节点。
答案 0 :(得分:0)
检查一下:
var abc = your json object;
//现在根据id
过滤项目abc = jQuery.grep(
abc.children,
function (item,index) {
return item.id != "343";
});
希望它有所帮助。
答案 1 :(得分:0)
function del(obj,id){
obj.children = obj.children.filter(el => {
if(el.children) del(el,id);//delete subnodes
return el.id !== id; //delete this
});
}
遍历对象的递归方法,可用作:
del(
{ children:[ { id:1 }, { id:2, children:[{id:1}] }] },
1
);
答案 2 :(得分:0)
var delIt = function (obj,id) {
return obj.children = obj.children.filter(function (child) {
if(child.children) delIt(child,id);
return child.id!=id;
});
}
var x= delIt(Tobj,335);
您可以使用过滤功能来收集与给定ID不相等的项目