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));
添加树形同级结构
最新推荐文章于 2023-03-06 09:57:26 发布