// 数据
const obj1 = [
{
name: 'code',
child: [
{
name: 'solution',
child: [
{
name: 'base',
child: [
name: 'tool',
child: []
]
}
]
}
]
}
]
const obj2 = [
{
name: 'code',
child: [
{
name: 'solution',
child: [
{
name: 'algorithm',
child: [
name: 'list',
child: []
]
}
]
}
]
}
]
想合并成
const obj3 = [
{
name: 'code',
child: [
{
name: 'solution',
child: [
{
name: 'base',
child: [
name: 'tool',
child: []
]
},
{
name: 'algorithm',
child: [
name: 'list',
child: []
]
}
]
}
]
}
]
const isSame = (target, source) => {
console.log(target, source)
if (target[0].children.length && source[0].children.length) {
return
}
for (let i = 0; i < source.length; i++) {
if (source[i].children.length) {
if (source[i].children[0].children.length === 0) {
if (source[i].name === target[i].name) {
target[i].children.push(...source[i].children)
}
}
isSame(target[i].children, source[i].children)
}
}
}
一开始想遍历对比每个节点,但是发现效果走不下去