博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 无限分类
阅读量:5135 次
发布时间:2019-06-13

本文共 1451 字,大约阅读时间需要 4 分钟。

* 根据实现js版本的

 

/** * 根节点 parentid=0, 每个节点都有id, parentid字段 * @param items * @returns {*} */function getTree(items) {    "use strict";    var children = new Map();    items.forEach(function(item){        if (children.has(item.parentid)) {            children.get(item.parentid).push(item);        } else {            children.set(item.parentid, [item]);        }    });    items.forEach(function(item) {        if (children.has(item.id)) {            item.children = children.get(item.id);        }    });    return children.get(0);}

  

* test

var items = [{    "id": 4,    "parentid": 2,    "name": "Laravel"}, {    "id": 1,    "parentid": 0,    "name": "PHP"}, {    "id": 43,    "parentid": 42,    "name": "PHPStorm"}, {    "id": 44,    "parentid": 42,    "name": "EclipsePDT"}, {    "id": 2,    "parentid": 1,    "name": "PHP_Framework"}, {    "id": 3,    "parentid": 2,    "name": "ThinkPHP5"}, {    "id": 42,    "parentid": 1,    "name": "DevTools"}];var c = getTree(items);// console.log(c);console.log(JSON.stringify(c));

  

output:

[{"id":1,"parentid":0,"name":"PHP","children":[{"id":2,"parentid":1,"name":"PHP_Framework","children":[{"id":4,"parentid":2,"name":"Laravel"},{"id":3,"parentid":2,"name":"ThinkPHP5"}]},{"id":42,"parentid":1,"name":"DevTools","children":[{"id":43,"parentid":42,"name":"PHPStorm"},{"id":44,"parentid":42,"name":"EclipsePDT"}]}]}]

* 在线格式化输出

http://www.bejson.com/

转载于:https://www.cnblogs.com/mingzhanghui/p/9419856.html

你可能感兴趣的文章
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
Java泛型的基本使用
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【Linux】ping命令详解
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
【模板】最小生成树
查看>>