JS数据转换 —— 树形结构和平铺结构的转换

本文探讨了在实际业务和面试中常见的需求——树形结构和平铺结构之间的转换。通过示例数据,详细介绍了如何实现树形结构转平铺数组以及平铺数组转树形结构的方法,包括关键的pid字段处理。
摘要由CSDN通过智能技术生成

树形结构和平铺结构的转换
1. 前言
不论是在实际的业务还是在面试中,博主都遇到了这样的一个需求。

将一个树形结构的数据转换成平铺的数组,或者将平铺的数组装换成树形结构,因此在这里记录一下如何实现这种转换的思想。

假设存在以下数据,其中 tree 是一个树形结构的数据,从外到内层级结构;arr 是树形结构的数组平铺,其中 pid 指在树形结构中上一层级的 id 值。
 

const tree = [{
  id: 1,
  name: '北京',
  children: [{
    id: 11,
    name: '朝阳',
    children: [{ id: 111, name: '朝阳1号' }]
  }, {
    id: 12,
    name: '海淀',
    children: [{ id: 121, name: '海淀1号' }]
  }]
},{
  id: 2,
  name: '上海',
  children: [{
    id: 21,
    name: '浦东',
    children: [{ id: 211, name: '浦东1号' }]
  },
  {
    id: 22,
    name: '虹口',
    children: [{ id: 221, name: '虹口1号' }]
  }]
}];
const arr = [
  { pid: null, id: 1, name: '北京' },
  { pid: 1, id: 11, name: '朝阳' },
  { pid: 11, id: 111, name: '朝阳1号' },
  { pid: 1, id: 12, name: &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值