美文网首页
JavaScript数组转为树形结构

JavaScript数组转为树形结构

作者: 六寸光阴丶 | 来源:发表于2020-04-09 23:11 被阅读0次

写在前面

如果本文对您有所帮助,就请点个关注吧!

手写数组转树形

源代码

function toTree(data) {
  let result = []
  if (!Array.isArray(data)) {
    return result
  }
  data.forEach(item => {
    delete item.children
  })
  let map = {}
  data.forEach(item => {
    map[item.id] = item
  })
  data.forEach(item => {
    let parent = map[item.pid]
    if (parent) {
      (parent.children || (parent.children = [])).push(item)
    } else {
      result.push(item)
    }
  })
  return result
}

测试

var source = [{
  id: 1,
  pid: 0,
  name: 'body'
}, {
  id: 2,
  pid: 1,
  name: 'title'
}, {
  id: 3,
  pid: 1,
  name: 'div'
}, {
  id: 4,
  pid: 3,
  name: 'span'
}, {
  id: 5,
  pid: 3,
  name: 'icon'
}, {
  id: 6,
  pid: 4,
  name: 'subspan'
}]

console.log(toTree(source))

相关文章

  • JavaScript数组转为树形结构

    写在前面 如果本文对您有所帮助,就请点个关注吧! 手写数组转树形 源代码 测试

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

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

  • js 数组 转为树形结构

    需要转换为树形的数组 转换方法 使用方法

  • 常用的工具函数

    格式化时间 将url请求参数转为json格式 父子关系的数组转换成树形结构数据 树形结构数据转换成父子关系的数组 ...

  • JavaScript数组结构转树形结构

    关键点:主要依赖JS中对象为引用类型的特性。 原始数据: 目标数据: 数据解释:将原始数据转换为目标数据后,需满足...

  • 一维数组转树形结构

    在JavaScript中如何将有父子关系的一维数组转换成树形结构:1:首先创建一个有父子结构关系的数组 2:将数组...

  • reduce处理树形结构数据

    直接上代码 1.0:将树形结构处理为扁平数组 2.0:将扁平数组处理为树形结构

  • 工具函数

    数组 普通一维数组 转 树形结构数据 树形结构数据 转 一维数组 uint8Array转String String...

  • 十、二叉树(Binary Tree)

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

  • 扁平数据结构转Tree

    如上一个数据结构,将他转为树形结构。方法一: 解析:遍历两次原数组,并在第一次遍历的时候给数组的每一项添加一个ch...

网友评论

      本文标题:JavaScript数组转为树形结构

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