美文网首页
树形数据结构

树形数据结构

作者: Renkin卡皮巴拉 | 来源:发表于2021-01-19 17:27 被阅读0次
let arr = [
    { id: 'a', uid: '' },
    { id: 'b', uid: 'a' },
    { id: 'c', uid: 'a' },
    { id: 'd', uid: 'c' },
    { id: 'f', uid: 'g' },
]

function toTree (data) {
    // 删除 所有 children,以防止多次调用
    data.forEach(function (item) {
        delete item.children;
    });

    // 将数据存储为 以 id 为 KEY 的 map 索引数据列
    var map = {};
    data.forEach((item) => map[item.id] = item);
    var res = [];
    data.map((item) => {
        // 以当前遍历项,的pid,去map对象中找到索引的id
        var parent = map[item.uid];
        // 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中
        if (parent) {
            (parent.children || (parent.children = [])).push(item);
        } else {
            //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 res结果集中,作为顶级
            res.push(item);
        }
    });
    return res;
}
// toTree(arr)
console.log(JSON.stringify(toTree(arr)));

相关文章

  • 《恋上数据结构与算法一》笔记(二十)总结

    目录 复杂度 线性数据结构 树形数据结构 线性+树形数据结构 一 复杂度 时间复杂度 空间复杂度 二 线性数据结构...

  • 数据结构与算法

    参考链接:算法 数据结构与算法 iOS数据结构 和 算法 上 算法 1、数据结构: 集合结构: 线性结构: 树形结...

  • 树形结构(一):二叉树

    树形结构是指数据元素之间存在“一对多”(One-to-Many)的树形对应关系而形成的一类数据结构,树形结构是一类...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 数据结构(C语言版本)

    数据结构(C语言版本) 第1章 绪论 1.常用的数据结构类型:集合、线性、树形、图状。 2.数据结构: 逻辑结构:...

  • js数组平铺和树形结构的转换

    将一个平铺的数据转换成一个树形的数据结构 将树形结构的数组转换成平铺的数组

  • 线性表之动态数组

    1、什么是数据结构 数据结构是计算机存储、组织数据的方式,数据结构分为线性结构、树形结构、图形结构。 线性表就是线...

  • 数据结构

    一. 数据结构的分类 集合结构 线性结构 树形结构 图形结构 二. 数据结构的存储 顺序存储结构 和 链式存储结构...

  • 常用算法

    [iOS常用算法和数据结构] 数据结构通常分为四类: 1.集合结构 线性结构 树形结构 图形结构 1.1、集...

网友评论

      本文标题:树形数据结构

      本文链接:https://www.haomeiwen.com/subject/wnkczktx.html