前端JS将树形结构转换成数组

封装转换函数 
function flattenTree(tree) {
  let result = [];

  function traverse(node,id, parentId) {
    const obj = { ...node, id, parentId }; // 分配唯一 ID 和 parentId
    delete obj.children; // 删除 children 属性
    result.push(obj); // 将当前节点添加到结果数组

    // 如果有子节点,递归遍历
    if (node.children && node.children.length > 0) {
      node.children.forEach(child => {
        traverse(child, child.id,obj.id); // 使用当前节点的 ID 作为子节点的 parentId
      });
    }
  }
  // 遍历每个根节点
  tree.forEach(node => {
    traverse(node, null); // 根节点的 parentId 为 null
  });

  return result;
}
使用调用传入树形结构即可
flattenTree(tree)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值