<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
pre {
font-size: 20px;
}
</style>
</head>
<body>
<pre>
树的格式如下所示,请实现函数 removeTagByName(root,name)
如:removeTagByName(obj,'C'),则输出:
{
name: "root",
children: [
{
name: "B",
children: []
}
]
}
如:removeTagByName(obj,'D'),则输出:
{
name: "root",
children: [
{
name: "B",
children: []
},
{
name: "C",
children: []
}
]
}
</pre>
<script>
var obj = {
name: "root",
children: [
{
name: "B",
children: []
},
{
name: "C",
children: [
{
name: "D",
children: []
}
]
}
]
}
function removeTagByName(root, name) {
if (root.name === name) {
// undefined 不是关键字,可能会被重新赋值
return void 0;
}
for (let i = 0; i < root.children.length; i++) {
// arguments.callee 可以降低一次耦合
// https://blog.csdn.net/qq_33807889/article/details/105080975
let res =arguments.callee(root.children[i], name);
if(res){
root.children[i] = res;
}else{
root.children.splice(i,1)
}
}
return root;
}
res = removeTagByName(obj, 'D');
console.log(res);
</script>
</body>
</html>
@wx:qq981145483