js处理父节点子节点树形结构元素不同转化为标准树形记录

原始数据

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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值