返回顶部
首页 > 资讯 > 精选 >使用JavaScript怎么将数组转为树形结构
  • 214
分享到

使用JavaScript怎么将数组转为树形结构

2023-06-15 08:06:46 214人浏览 安东尼
摘要

本篇文章给大家分享的是有关使用javascript怎么将数组转为树形结构,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.需求后台给了一个这样的数据让咱前端去转换为树形结构(没

本篇文章给大家分享的是有关使用javascript怎么将数组转为树形结构,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1.需求

后台给了一个这样的数据让咱前端去转换为树形结构(没有重复数据)。不多说,先来看看给了一个怎样的数组数据,转换为怎样的树形结构。

服务器传过来的数组

const arr = [      [        {"deptId":"D019",        "deptName":"销售部"},        {"deptId":"D019101",        "deptName":"华北销售中心"}      ],[        {"deptId":"D083",        "deptName":"音乐事业部"}      ],[        {"deptId":"D027",        "deptName":"杭州研究院"},        {"deptId":"D027048",        "deptName":"技术工程事业部"},        {"deptId":"D027048002",        "deptName":"项目管理中心"}      ],[        {"deptId":"D027",        "deptName":"杭州研究院"},        {"deptId":"D027048",        "deptName":"技术工程事业部"}      ],[        {"deptId":"D027",        "deptName":"杭州研究院"},        {"deptId":"D027048",        "deptName":"技术工程事业部"}      ]    ]

最终转换为

const arr = [    {      deptId: 'D019',      deptName: '销售部',      children: [{        deptId: 'D019101',        deptName: '华北销售中心',        children: [],      }]    },    {      deptId: 'D083',      deptName: '音乐事业部',      children: []    },    {      deptId: 'D027',      deptName: '杭州研究院',      children: [{        deptId: 'D027048',        deptName: '技术工程事业部',        children: [{          deptId: 'D027048002',          deptName: '项目管理中心',          children: []        }]      }]    },  ]

2.上代码(在ReactHooks中开发

const [treeData, setTreeData] = useState([]);  console.log(treeData); //treeData为最终需要的树形结构,(在我本地浏览器打印出来是正确的)    useEffect(() => {    const str = '[[{"deptId":"D019","deptName":"销售部"},{"deptId":"D019101","deptName":"华北销售中心"}],[{"deptId":"D019","deptName":"销售部"},{"deptId":"D019101","deptName":"华北销售中心"}],[{"deptId":"D083","deptName":"音乐事业部"}],[{"deptId":"D027","deptName":"杭州研究院"},{"deptId":"D027048","deptName":"技术工程事业部"},{"deptId":"D027048002","deptName":"项目管理与效能中心"}],[{"deptId":"D027","deptName":"杭州研究院"},{"deptId":"D027048","deptName":"技术工程事业部"}],[{"deptId":"D027","deptName":"杭州研究院"},{"deptId":"D027048","deptName":"技术工程事业部"}]]';    const arr = JSON.parse(str).flat(); //扁平化    let newArr = [];    noRepeat(arr).length && noRepeat(arr).forEach(it => {      appendChild(it, newArr);    });  }, [])  const noRepeat = (arr) => { //去重    let newobj = {};     return arr.reduce((preVal, curVal) => {    newobj[curVal.deptId] ? '' : newobj[curVal.deptId] = preVal.push(curVal);       return preVal     }, []);  }  const appendChild = (item, newArr) => {    if(!newArr.find(it => item.deptId.indexOf(it.deptId) > -1)) { //所有一级部门      newArr.push({        deptId: item.deptId,        deptName: item.deptName,        children: [],      });      setTreeData(newArr);    }else {      appendOtherChild(item, newArr);    }  }  const appendOtherChild = (item, newArr) => {    newArr.map(it => {      if(item.deptId.indexOf(it.deptId) > -1 && item.deptId.length === it.deptId.length+3) {        it.children.push({          deptId: item.deptId,          deptName: item.deptName,          children: [],        })      }else {        appendOtherChild(item, it.children);      }    });    setTreeData(newArr);  }

以上就是使用JavaScript怎么将数组转为树形结构,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 使用JavaScript怎么将数组转为树形结构

本文链接: https://lsjlt.com/news/278849.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用JavaScript怎么将数组转为树形结构
    本篇文章给大家分享的是有关使用JavaScript怎么将数组转为树形结构,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.需求后台给了一个这样的数据让咱前端去转换为树形结构(没...
    99+
    2023-06-15
  • 如何将JavaScript将数组转为树形结构
    1.需求 后台给了一个这样的数据让咱前端去转换为树形结构(没有重复数据)。不多说,先来看看给了一个怎样的数组数据,转换为怎样的树形结构。 服务器传过来的数组 const ar...
    99+
    2024-04-02
  • PHP数组转树形结构、树形结构转数组
    PHP数组转树形结构、树形结构转数组 一、实现功能二、原数据三、数组转数据树四、数据树转数组五、结语 一、实现功能 在日常工作中大家会经常遇到将数组转换为树形菜单(如菜单)或者将树形结构转...
    99+
    2023-09-18
    开发语言 php
  • JavaScript平铺数组转树形结构的实现示例
    目录后台丢来了1w条数据 递归方式非递归方式总结后台丢来了1w条数据 千算万算,还是没有逃过,后台真的就上万条数据一次丢给前端了。好吧,好在还不是10w条。如下,后台返回的是这样的...
    99+
    2024-04-02
  • JavaScript数组扁平转树形结构数据(Tree)的实现
    前言 之前面试有遇到过这个问题,面试官问:如何把一个数组数据扁平,然后转化为Tree结构数据,工作中刚好也用到了,在这里总结一下。 需求大致如下 把这个数组转为树形结构数据(Tree...
    99+
    2022-11-13
    JavaScript数组扁平转树形结构 javascript扁平数组转树形结构
  • JS实现树形结构与数组结构相互转换并在树形结构中查找对象
    总是有很多需求是关于处理树形结构的,所以不得不总结几个常见操作的写法。 首先假设有一个树形结构数据如下 var tree=[ { 'id': '1', 'name...
    99+
    2024-04-02
  • C#中怎么将结构体转换为数组
    本篇文章给大家分享的是有关C#中怎么将结构体转换为数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。(1)解决C#结构体数组间的转化之定义结构体://命名空间 &nb...
    99+
    2023-06-18
  • javascript怎么将object转为数组
    这篇文章主要为大家展示了“javascript怎么将object转为数组”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript怎么将object转为...
    99+
    2024-04-02
  • Javascript中扁平化数据结构与JSON树形结构转换详解
    目录一. 先说简单的树形结构数扁平化处理二. 再讲将扁平化数据结构转JSON树状形结构扩充一个知识点:for in 与 for of 的区别 :总结不废话,直接开干 一. 先说简单的...
    99+
    2024-04-02
  • 使用JavaScript怎么将数组转换为字符串
    这期内容当中小编将会给大家带来有关使用JavaScript怎么将数组转换为字符串,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript 允许数组与字符串之间相互转换。其中 Array 方法对象...
    99+
    2023-06-14
  • 使用Java将一个List运用递归转成树形结构案例
    在开发中,我们会遇到将不同组织架构合并成tree这种树状结构,那么如果做呢? 实际上,我们也可以理解为如何将拥有父子关系的list转成树形结构,而这其中主要的方法就是递归! 1、实体...
    99+
    2024-04-02
  • javascript中怎么将数组转换为string
    javascript中怎么将数组转换为string,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 实现方法有:1、...
    99+
    2024-04-02
  • javascript怎么将字符串转为数组
    这篇文章主要介绍“javascript怎么将字符串转为数组”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript怎么将字符串转为数组”文章能帮助大家解决问题。3种转换方法:1、使用spl...
    99+
    2023-07-04
  • WinForms中怎么使用TreeView展示树形结构
    在WinForms中使用TreeView展示树形结构非常简单,可以按照以下步骤操作: 在Visual Studio中创建一个新的...
    99+
    2024-03-12
    WinForms TreeView
  • Vue组件模板形式如何实现对象数组数据循环为树形结构
    这篇文章主要介绍Vue组件模板形式如何实现对象数组数据循环为树形结构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据结构为数组中包含对象--树形结构,用Vue组件的写法实现以下的效...
    99+
    2024-04-02
  • javascript怎么将数组转换为字符串
    这篇文章主要介绍了javascript怎么将数组转换为字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。javascript将数组转换为字符串的方法:1、使用join()函...
    99+
    2023-06-15
  • Vue将将后端返回的list数据转化为树结构的实现
    下载 cnpm i -S array-to-tree 引入 import arrayToTree from "array-to-tree"; 使用 const pidDa...
    99+
    2024-04-02
  • 利用递归算法怎么将数据库解析成Java树形结构
    利用递归算法怎么将数据库解析成Java树形结构?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、准备表结构及对应的表数据a、表结构:create table T...
    99+
    2023-05-31
    java ava 递归算法
  • 使用泛型将结构转换为映射
    最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《使用泛型将结构转换为映射》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以...
    99+
    2024-04-04
  • 如何将 NumPy 数组转换为 PHP 和 JavaScript 中的响应式数据结构?
    NumPy 是一个流行的 Python 库,用于科学计算和数据处理。它提供了一个多维数组对象,以及许多用于数组操作的函数和方法。但是,有时候我们需要将 NumPy 数组转换为 PHP 和 JavaScript 中的响应式数据结构,这样可以更...
    99+
    2023-11-11
    javascript 响应 numpy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作