初始数据
let array = [
{
id: 1,
name: "1级1",
parentId: 0,
},
{
id: 2,
name: "2级1",
parentId: 0,
},
{
id: 4,
name: "1级1-1",
parentId: 1,
},
{
id: 6,
name: "1级1-1-1",
parentId: 4,
},
{
id: 12,
name: "2级1-1",
parentId: 2,
},
{
id: 13,
name: "3级1",
parentId: 0,
},
{
id: 14,
name: "3级1-1",
parentId: 13,
},
{
id: 15,
name: "1级1-1-1-1",
parentId: 6,
},
];
实现方式
function conversion(arr, id = 0) {
let result = [];
for (const item of arr) {
if (item.parentId === id) {
let subItem = { id: item.id, label: item.name };
subItem.children = conversion(arr, subItem.id);
result.push(subItem);
}
}
return result;
}
console.log(conversion(array));
运行结果
还算截的比较完整