原始数据
const arr = [
{
id: "1284550276417589251",
workFaceName: "14020下顺槽底抽巷",
children: [
{
drillSiteName: "-",
drillSiteId: "1284550276652470273",
id: "1295949929524498439",
drillHoleNumber: "探1-2补",
},
{
drillSiteName: "-",
drillSiteId: "1284550276652470273",
id: "1284550277793320968",
drillHoleNumber: "探1-2",
},
{
drillSiteName: "-",
drillSiteId: "1284550276652470273",
id: "1284550276887351298",
drillHoleNumber: "探1-1",
},
],
},
{
id: "1270156687205994499",
workFaceName: "二盘区外侧煤柱工作面",
children: [
{
drillSiteName: "中3号钻场",
drillSiteId: "1283395173585260546",
id: "1290707638975205385",
drillHoleNumber: "中顶3-3",
},
],
},
{
id: "1270123194279268357",
workFaceName: "14030下顺槽底抽巷",
children: [
{
drillSiteName: "-",
drillSiteId: "1270123194480594953",
id: "1296017276692074501",
drillHoleNumber: "探5-3-5",
},
],
},
];
封装的函数方法
function transformArrayToTree(arr) {
return arr.map((item) => {
const { id, workFaceName, children } = item;
const node = {
label: workFaceName,
value: id,
id,
workFaceName,
};
if (children && children.length > 0) {
node.children = children.map((child) => ({
label: child.drillHoleNumber,
value: child.id,
id: child.id,
drillSiteName: child.drillSiteName,
drillSiteId: child.drillSiteId,
drillHoleNumber: child.drillHoleNumber,
}));
} else {
node.children = [];
}
return node;
});
}
const tree = transformArrayToTree(arr);
console.log(tree);