美文网首页
树形结构相关函数

树形结构相关函数

作者: yuyuuuumi | 来源:发表于2021-04-28 08:22 被阅读0次

普通数组转树形结构

function toTree (data) {
    const arr = JSON.parse(JSON.stringify(data))
    let obj = {}
    let list = []
    arr.forEach(el => obj[el.id] = el)
    arr.forEach((el) => {
        let parent = obj[el.pid]
        if (parent) {
            parent.children ? parent.children.push(el) : parent.children = [el]
        } else {
            list.push(el)
        }
    })
    return list
}

数形结构查找id

function find (data, id) {
    let tem = null
    let isFind = false
    function fn (data) {
        if (Array.isArray(data) && !isFind) {
            data.forEach((el) => {
                if (el.id === id) {
                    tem = el
                    isFind = true
                } else {
                    if (el.children) {
                        fn(el.children)
                    }
                }
            })
        }
    }
    fn(data, id)
    return tem
}

树结构根据子id查找所有父级id

function find (data, id) {
    let tem = []
    function fn (arr, id) {
        for (let i = 0; i < arr.length; i++) {
            let item = arr[i]
            if (item.id === id) {
                tem.push(item.id)
                fn(data, item.pid)
                break
            } else {
                if (item.children) {
                    fn(item.children, id)
                }
            }
        }
    }
    fn(data, id)
    return tem.reverse()
}

相关文章

  • 树形结构相关函数

    普通数组转树形结构 数形结构查找id 树结构根据子id查找所有父级id

  • js 数组与树形结构对象相互转换

    数组 树形结构对象 数组转成树形结构 树形结构转成数组

  • linux入门知识点

    linux目录结构树形结构 / 根目录:所有数据都在此目录下(Linux系统的起点) /dev:存放设备相关数据 ...

  • 【恋上数据结构与算法一】(六)二叉树

    二叉树 线性结构 树形结构 二叉树 多叉树 生活中的树形结构 ◼ 使用树形结构可以大大提高效率◼ 树形结构是算法面...

  • 十、二叉树(Binary Tree)

    1、树形结构 之前所讲的那些数组、链表、栈、队列等都是线性结构。 下面就是树形结构: 为什么要用到树呢?使用树形结...

  • 网络常用函数

    地址结构 ip地址转换相关函数

  • 【Linux学习笔记】目录结构和文件操作相关

    目录相关 Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。tre...

  • 二叉树

    1、简介 先来看下几个树形结构 上面两张图都是树形结构,图一为二叉树,图二为多叉树。本文主要来看下二叉树相关的一些...

  • 树形结构

    树是一种分层数据的抽象模型。它和散列表一样是一种非顺序数据结构,它对于存储需要快速查找的数据非常有用。 树的相关术...

  • 树形结构

    数据结构中的元素存在一对多的相互关系 二叉树 2. 非二叉树 3. 自平衡二叉查找树 4. B树 5. Trie ...

网友评论

      本文标题:树形结构相关函数

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