const arr = [
{ id: 1, parentId: 0, name: '四川' },
{ id: 2, parentId: 0, name: '贵州' },
{ id: 3, parentId: 0, name: '云南' },
{ id: 4, parentId: 0, name: '江苏' }, { id: 5, parentId: 1, name: '成都' },
{ id: 6, parentId: 2, name: '贵州' },
{ id: 7, parentId: 3, name: '昆明' },
{ id: 8, parentId: 4, name: '苏州' }, { id: 9, parentId: 5, name: '成都县1' },
{ id: 10, parentId: 5, name: '成都县2' },
{ id: 11, parentId: 5, name: '成都县3' },
{ id: 12, parentId: 5, name: '成都县4' },
{ id: 13, parentId: 5, name: '成都县5' }, { id: 14, parentId: 6, name: '贵州县1' },
{ id: 15, parentId: 6, name: '贵州县2' },
{ id: 16, parentId: 6, name: '贵州县3' }, { id: 17, parentId: 7, name: '昆明县1' },
{ id: 18, parentId: 7, name: '昆明县2' },
{ id: 19, parentId: 7, name: '昆明县3' }, { id: 20, parentId: 8, name: '苏州县1' },
{ id: 21, parentId: 8, name: '苏州县2' },
{ id: 22, parentId: 8, name: '苏州县3' },
{ id: 23, parentId: 8, name: '苏州县4' }, { id: 24, parentId: 9, name: '成都镇1' },
{ id: 25, parentId: 10, name: '成都镇2' }, { id: 26, parentId: 24, name: '成都村11' },
{ id: 27, parentId: 24, name: '成都村12' },
{ id: 28, parentId: 24, name: '成都村13' }
] function main(arr, pid = 0) {
const temp = [];
for (const item of arr) {
if (item.parentId === pid) {
item.children = main(arr, item.id);
temp.push(item);
}
}
return temp;
}
const res = main(arr, pid = 0);
console.log(JSON.stringify(res))

  

最新文章

  1. MySQL 插入数据 通过命令提示窗口插入数据
  2. uva 10801(最短路)
  3. papi酱视频因违规遭下线整改,你知道原因吗?
  4. SVN操作手册
  5. Project Management - 1) Schedule Your Project
  6. 关于uploadify 没有显示进度条!!!!
  7. 【转】putty基本操作--不错
  8. Unity3d 网络编程(三)(Unity3d内置简单的网络server编制)
  9. Swift 与 JSON 数据
  10. jquery实现图片上传前本地预览
  11. 第一册:lesson thirteen.
  12. Mysql建库建用户建表等常用命令
  13. kruscal重构树略解
  14. c#所有部门及其下所部门生成树形图(递归算法获取或键值对方式获取)
  15. 【AtCoder】CODE FESTIVAL 2017 qual B
  16. 一些做vue前端的经验
  17. uiautomator 代码记录 : BT发送测试
  18. Cannot detect Web Project version. Please specify version of Web Project through Maven project property <webVersion>. E.g.: <properties> <webVersion>3.0</webVersion> </properties>
  19. flex布局知识点(阮一峰博客)
  20. RHEL7 利用双网卡绑定实现VLAN

热门文章

  1. 本地文件上传到gitlab
  2. js创建对象的几种方式(工厂模式、构造函数模式、原型模式)
  3. curses is not supported on this machine:(curses 在pycharm(Windows)中的安装 )
  4. Flyway对比Liquibase(转)
  5. 开源的任务系统 TaskManager
  6. 交换机配置——Cisco(思科)-交换机初始化配置
  7. MessagePack Java Jackson Dataformat - POJO 的序列化和反序列化
  8. Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)
  9. codevs 2977 二叉堆练习1x
  10. UBUNTU 15.10 CAFFE安装教程(测试可用)