树型数据
const root = [
{
id: 1,
name: '1x',
children: [
{
id: 11, name: '11x', children: [{ id: 111, name: '111x' }]
},
{ id: 12, name: '12x' },
]
},
{
id: 2,
name: '1x',
children: [
{
id: 21, name: '21x', children: [{ id: 211, name: '21x' }]
},
{ id: 12, name: '12x' },
]
},
{id: 3,name: '3x'}
]
需处理成的结构样例
代码
思路:递归
function dataDispose(root) {
let arr = []
function dataTransform(data, parentId) {
data.forEach(item => {
let obj = { id: item.id, name: item.name }
if (parentId) {
obj.parent = [parentId]
}
arr.push(obj)
if (item.children) {
obj.children = []
for (let item1 of item.children) {
obj.children.push(item1.id)
}
dataTransform(item.children, item.id)
}
})
}
dataTransform(root, 0)
return arr
}