// 需转换的数组
let a = [
{
preant: 2,
id: 3,
name: 'ss',
},
{
preant: 0,
id: 1,
name: 'ss',
},
{
preant: 0,
id: 2,
name: 'ss',
},
{
preant: 1,
id: 4,
name: 'ss',
},
]
// 数组转换方法
let arraysToTree = (data) =>{
let newArray = []
let map = []
data.map(item=>{
item.children = [];
map[item.id] = item
})
data.map(item=>{
console.log('item',JSON.stringify(item));
let parent = map[item.preant]
if(parent){
parent.children.push(item)
}else{
console.log('newArray:',item);
newArray.push(item);
}
})
return newArray
}
// 转换结果
console.log('结果:',arraysToTree(a))
最终输出
// 最终输出结果
[
{
"preant": 0,
"id": 1,
"name": "ss",
"children": [
{
"preant": 1,
"id": 4,
"name": "ss",
"children": []
}
]
},
{
"preant": 0,
"id": 2,
"name": "ss",
"children": [
{
"preant": 2,
"id": 3,
"name": "ss",
"children": []
}
]
}
]