上代码:
const treeData = [
{
id: 1,
name: '阿里巴巴',
children: [
{
id: 11,
parentId: 1,
name: '蚂蚁金服',
children: [
{ id: 111, parentId: 11, name: '行政处' },
{ id: 112, parentId: 11, name: '财务处' }
]
},
{
id: 12,
parentId: 1,
name: '哈啰科技',
children: [{ id: 111, parentId: 11, name: '人事处' }]
}
]
},
{
id: 2,
name: '腾讯科技',
children: [
{
id: 21,
parentId: 2,
name: '天美游戏',
children: [{ id: 211, parentId: 21, name: '研发部' }]
}
]
}
]
const result = treeData.reduce(function (prev, curr) {
prev.push({
id: curr.id,
name: curr.name,
parentId: curr.parentId
})
curr.children &&
curr.children.forEach((item) => {
arguments.callee(prev, item)
})
return prev
}, [])
console.log(result)
// [
// { id: 1, name: '阿里巴巴', parentId: undefined },
// { id: 11, name: '蚂蚁金服', parentId: 1 },
// { id: 111, name: '行政处', parentId: 11 },
// { id: 112, name: '财务处', parentId: 11 },
// { id: 12, name: '哈啰科技', parentId: 1 },
// { id: 111, name: '人事处', parentId: 11 },
// { id: 2, name: '腾讯科技', parentId: undefined },
// { id: 21, name: '天美游戏', parentId: 2 },
// { id: 211, name: '研发部', parentId: 21 }
// ]