let arr=[
{id:"01", pid:"", "name":"老王" },
{id:"02", pid:"01", "name":"小张" },
{id:"03", pid:"02", "name":"小小张" },
{id:"04", pid:"", "name":"老陈" }
];
tranListToTreeData(arr)
function tranListToTreeData(arr) {
const newArr = []
const map = {}
arr.forEach(item => {
item.children = []
const key = item.id
map[key] = item
})
arr.forEach(item => {
const parent = map[item.pid]
if (parent) {
parent.children.push(item)
} else {
newArr.push(item)
}
})
return newArr
}
let arr = [{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "111",
"bdictDesc": "测试1",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "222",
"bdictDesc": "测试2",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "333",
"bdictDesc": "测试3",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "444",
"bdictDesc": "测试4",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "555",
"bdictDesc": "测试5",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA",
"bdictDesc": "测试6",
"pid": "0",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA01",
"bdictDesc": "测试7",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0101",
"bdictDesc": "测试8",
"pid": "DOCA01",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0102",
"bdictDesc": "测试9",
"pid": "DOCA01",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0103",
"bdictDesc": "测试10",
"pid": "DOCA01",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA02",
"bdictDesc": "测试11",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA03",
"bdictDesc": "测试12",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0301",
"bdictDesc": "测试13",
"pid": "DOCA03",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0302",
"bdictDesc": "测试14",
"pid": "DOCA03",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA04",
"bdictDesc": "测试15",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA05",
"bdictDesc": "测试16",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA06",
"bdictDesc": "测试17",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA07",
"bdictDesc": "测试18",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA08",
"bdictDesc": "测试19",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA09",
"bdictDesc": "测试20",
"pid": "DOCA",
"validStatus": "1"
}, {
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA10",
"bdictDesc": "测试21",
"pid": "DOCA",
"validStatus": "1"
}, ]
function arrayToTree(list, parentID) {
const child = function(pareID) {
const childs = [];
for (let i = 0; i < list.length; i++) {
if (list[i].pid === pareID) {
if (child(list[i].id).length > 0) {
list[i].children = child(list[i].id);
}
childs.push(list[i]);
}
}
return childs;
};
return child(parentID);
}
let tree22 = [
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "111",
"bdictDesc": "测试1",
"pid": "0",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "222",
"bdictDesc": "测试2",
"pid": "0",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "333",
"bdictDesc": "测试3",
"pid": "0",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "444",
"bdictDesc": "测试4",
"pid": "0",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "555",
"bdictDesc": "测试5",
"pid": "0",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA",
"bdictDesc": "测试6",
"pid": "0",
"validStatus": "1",
"children": [
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA01",
"bdictDesc": "测试7",
"pid": "DOCA",
"validStatus": "1",
"children": [
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0101",
"bdictDesc": "测试8",
"pid": "DOCA01",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0102",
"bdictDesc": "测试9",
"pid": "DOCA01",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0103",
"bdictDesc": "测试10",
"pid": "DOCA01",
"validStatus": "1"
}
]
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA02",
"bdictDesc": "测试11",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA03",
"bdictDesc": "测试12",
"pid": "DOCA",
"validStatus": "1",
"children": [
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0301",
"bdictDesc": "测试13",
"pid": "DOCA03",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA0302",
"bdictDesc": "测试14",
"pid": "DOCA03",
"validStatus": "1"
}
]
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA04",
"bdictDesc": "测试15",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA05",
"bdictDesc": "测试16",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA06",
"bdictDesc": "测试17",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA07",
"bdictDesc": "测试18",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA08",
"bdictDesc": "测试19",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA09",
"bdictDesc": "测试20",
"pid": "DOCA",
"validStatus": "1"
},
{
"categoryCode": "90000",
"categoryCnName": "A1级别",
"id": "DOCA10",
"bdictDesc": "测试21",
"pid": "DOCA",
"validStatus": "1"
}
]
}
]
let treeRes = [];
function tree2arr(res) {
res.forEach(item => {
if (!item.children) {
treeRes.push(item)
} else {
let obj = {
...item,
children: null
}
delete obj.children
treeRes.push(obj)
tree2arr(item.children)
}
})
}
tree2arr(tree22)
console.log(treeRes);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探