const tree = [
{
key: '1',
title: '1',
children: [
{
key: '1-1',
title: '1-1',
children: []
},
{
key: '1-2',
title: '1-2',
children: []
},
]
},
{
key: '2',
title: '2',
children: [
{
key: '2-1',
title: '2-1',
children: []
},
{
key: '2-2',
title: '2-2',
children: [
{
key: '2-2-1',
title: '2-2-1',
children: []
}
]
},
]
}
];
// copy一个新树
const copyTree = (node) => {
if (node && node.length) {
return node.map(item => ({
title: item.title,
key: item.key,
children: copyTree(item.children)
}))
} else {
return;
}
};
// 寻找父节点
const findParentNode = (key, node) => {
if (!node) {
return null;
}
if (node.children) {
let children = node.children;
for (let i = 0; i < children.length; i++) {
if (children[i].key === key) {
return node;
} else {
const res = findParentNode(key, children[i]);
if (res) {
return res;
}
}
}
}
return null;
}
// 添加同级结构
const addSameLevel = (key,node) =>{
let nakeTree = {children:copyTree(tree)};
let parentNode = findParentNode('2-1', nakeTree);
if(!parentNode.children) {
parentNode.children = [];
}
parentNode.children.push({
title:'add',
key:'add',
children:[]
})
return nakeTree.children;
}
console.log(addSameLevel('2-1',tree));
添加树形同级结构
最新推荐文章于 2024-03-15 09:46:43 发布
这篇博客介绍了如何在JavaScript中处理树形数据结构,包括复制整个树,查找指定节点的父节点,以及在找到的父节点下添加新的同级节点。示例代码展示了这些操作的具体实现,对于理解和操作复杂数据结构具有参考价值。

2156

被折叠的 条评论
为什么被折叠?



