首页 > 其他分享 >树结构转数组/数组转树结构

树结构转数组/数组转树结构

时间:2023-09-20 15:12:42浏览次数:36  
标签:const name 树结构 pid children item 数组 id

树结构转数组

const listTree = [ { id: 1, name: '部门1', pid: 0, children: [ { id: 2, name: '部门1-1', pid: 1, children: [ { id: 4, name: '部门1-1-1', pid: 2, children: [] } ] }, { id: 3, name: '部门1-2', pid: 1, children: [ { id: 5, name: '部门1-2-1', pid: 3, children: [] } ] } ] }, { id: 6, name: '部门2', pid: 0, children: [ { id: 7, name: '部门2-1', pid: 6, children: [] } ] }, { id: 8, name: '部门3', pid: 0, children: [] } ] const list = [] const listforEach = (list, newList) => { list.forEach((item) => { const info = {} info.id = item.id info.name = item.name info.pid = item.pid newList.push(info) if (item.children.length > 0) { listforEach(item.children, newList) } }) } const bianlishuzu = () => { listforEach(listTree, list) }

  

数组转树结构
const list = [ { id: 1, name: '部门1', pid: 0 }, { id: 2, name: '部门1-1', pid: 1 }, { id: 3, name: '部门1-2', pid: 1 }, { id: 4, name: '部门1-1-1', pid: 2 }, { id: 5, name: '部门1-2-1', pid: 3 }, { id: 6, name: '部门2', pid: 0 }, { id: 7, name: '部门2-1', pid: 6 }, { id: 8, name: '部门3', pid: 0 } ] const listTree = [] const listforEach = (list, listTree, pid) => { let sonlist = [] list.forEach((item) => { if (item.pid == pid) { let par = { id: item.id, name: item.name, pid: item.pid, children: [] } listTree.push(par) } else { sonlist.push(item) } }) listTree.forEach((item) => { listforEach(sonlist, item.children, item.id) }) } const bianlishuzu = () => { listforEach(list, listTree, 0) console.log(listTree) }

  

标签:const,name,树结构,pid,children,item,数组,id
From: https://www.cnblogs.com/yugueilou/p/17716865.html

相关文章

  • Java学习之路--array--数组
    packagecom.chao.array;/*数组定义:1.数组市相同类型数据的有序集合2.数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成3.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组声明创建首先必须声明数组变量,才能在程序中使用数组,声明数组变......
  • 每日一题:如何判断是否是数组,一个既简单又复杂的问题。(不要再用Object.prototype.toStr
    1、不要使用Object.prototype.toString.call()正常情况下:constarr=[1,2,3,4,5]constobj={}console.log(Object.prototype.toString.call(arr))//[Object,Array]console.log(Object.prototype.toString.call(obj))//[Object,Object]过去我们能够通过判断Object.proto......
  • 七天学会C语言-第四天(数组)
    1.定义一维数组在C语言中,一维数组是具有相同数据类型的元素的有序集合。定义一维数组的基本语法如下:data_typearray_name[array_size];其中:data_type 是数组元素的数据类型,可以是整数、浮点数、字符等。array_name 是数组的名称,你可以自定义。array_size 是数组的大小,指定了数......
  • 《剑指Offer》-21-调整数组顺序使奇数位于偶数前面
    第一想法是双指针,一个指针用于遍历,一个指针用于标记奇数和偶数的分界,而调整位置则通过交换来实现思路来自于快排代码,分隔指针+交换,也算是双指针? vector<int>exchange(vector<int>&nums){ //一个遍历指针,一个分隔指针,odd指向第一个偶数 intodd=0; for(inti=0;i......
  • arcgis for js4.x自定义Graphic数组创建FeatureLayer添加标注
    varpoint=[{ "geometry":{ "x":116.820688, "y":33.974053, "spatialReference":{ "wkid":4326 } }, "......
  • js removeRepeat 数组去重
    //数组不去重_this.incompleteData.map(e=>e.order_id).join(',')//数组去重varorder_ids=_this.incompleteData.map(e=>e.order_id).removeRepeat().join(','); ......
  • Leetcode刷题88. 合并两个有序数组
    给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了......
  • Cascader级联选择器多选时获取所有选中状态的节点和半选状态的节点的数组集合
    <!--Cascader级联选择器组件--><el-cascaderv-model="query.companyList"ref="searchCompanyCascaderRef":options="permissionCompanyTree":props="companyCascaderProp"collapse-tagsclearable></el......
  • split将字符串转换为数组
    <p><iclass="tag"v-for="taginitem.tag.split(',')":key="tag.id">{{tag}}</i></p>split(',') ------->将字符串转换为数组......
  • 记录--JavaScript 令人惊讶的一点:对于空数组every()方法返回true
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助JavaScript语言的内核足够大,导致我们很容易误解它的某些部分是如何工作的。我最近重构了一些使用every()方法的代码,并且发现我并不真正理解every()的逻辑。在我看来,我认为回调函数必须被调用并返回true的时候ev......