博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一级关联数组转化成多层子级数组
阅读量:5458 次
发布时间:2019-06-15

本文共 1845 字,大约阅读时间需要 6 分钟。

将data1的数据结构转化成data2的数据结构:
const data1 = [
{
"group_id"
:
 
"1"
,
"group_name"
:
 
"广州"
,
"p_group_id"
:
 
"-1"
,
"group_level"
:
 
1
,
},
{
"group_id"
:
 
"11"
,
"group_name"
:
 
"番禺"
,
"p_group_id"
:
 
"1"
,
"group_level"
:
 
2
,
},
{
"group_id"
:
 
"12"
,
"group_name"
:
 
"荔湾"
,
"p_group_id"
:
 
"1"
,
"group_level"
:
 
2
,
},
{
"group_id"
:
 
"111"
,
"group_name"
:
 
"市桥"
,
"p_group_id"
:
 
"11"
,
"group_level"
:
 
3
,
},
{
"group_id"
:
 
"1111"
,
"group_name"
:
 
"银座"
,
"p_group_id"
:
 
"111"
,
"group_level"
:
 
4
,
},
{
"group_id"
:
 
"2"
,
"group_name"
:
 
"杭州"
,
"p_group_id"
:
 
"-1"
,
"group_level"
:
 
1
,
},
{
"group_id"
:
 
"21"
,
"group_name"
:
 
"余杭"
,
"p_group_id"
:
 
"2"
,
"group_level"
:
 
2
,
},
{
"group_id"
:
 
"211"
,
"group_name"
:
 
"海创园"
,
"p_group_id"
:
 
"21"
,
    
"group_level"
:
 
3
,
},
{
"group_id"
:
 
"212"
,
"group_name"
:
 
"海创园二期"
,
"p_group_id"
:
 
"21"
,
"group_level"
:
 
3
,
},
{
"group_id"
:
 
"213"
,
"group_name"
:
 
"海创园三期"
,
"p_group_id"
:
 
"21"
,
"group_level"
:
 
3
,
},
{
"group_id"
:
 
"2131"
,
"group_name"
:
 
"三期A栋"
,
"p_group_id"
:
 
"213"
,
"group_level"
:
 
4
,
}
];
 
const data2 = [
       
 {
                value : "1",
                label : "广州",
                children : [
                        {
                                value : "11",
                                label : "番禺",
                                children : [
                                        {
                                                value : "111",
                                                label : "市桥“
                                                children : [
                                                {
                                                        value : "1111",
                                                        label : "银座"
                                                }
                                                ]
                                        }
                                ]
                        }
                ]
        }
]
 
代码如下:
getGroupData
 
=
 (
groupList
) 
=>
 {
let
 
data
 
=
 []
groupList
.
map
((
item
, 
index
) 
=>
 {
let
 
obj
 
=
 {}
obj
.
value
 
=
 
item
.
group_id
obj
.
label
 
=
 
item
.
group_name
let
 
childList
 
=
 []
this
.
state
.
deviceGroupList
.
map
((
item2
, 
index
) 
=>
 {
if
 (
item2
.
p_group_id
 
===
 
item
.
group_id
) {
    
    
childList
.
push
(
item2
)
}
})
if
 (
childList
.
length
 
>
 
0
) {
    
    
obj
.
children
 
=
 
this
.
getGroupData
(
childList
)
}
data
.
push
(
obj
)
//若是顶级分组数据,则直接push到groupOptions数组里
if
 (
item
.
p_group_id
 
==
 
-
1
) {
    
    
this
.
state
.
groupOptions
.
push
(
obj
)
}
})
return
 
data
}
 

转载于:https://www.cnblogs.com/dragon-cat/p/8981008.html

你可能感兴趣的文章
会计简要学习
查看>>
jquery用户自定义选择器及选择器高级用法实验
查看>>
js学习笔记3:with语句的使用
查看>>
MFC_1.2 消息映射宏 数据绑定和交换
查看>>
抽象工厂模式
查看>>
Android中Button
查看>>
android 中resources管理
查看>>
CSS !Important及感叹号(!) hack的应用
查看>>
Python中的编码和解码问题
查看>>
TX Textcontrol 使用总结五——添加图片
查看>>
[转]Android中常用适配器及定义自己的适配器
查看>>
openjudge noi 鸡尾酒疗法
查看>>
函数对象、函数对象嵌套调用、函数定义、名称空间与作用域以及名称空间的查找顺序...
查看>>
WCF宿主asp.netMVC 并且发布restfull接口数据
查看>>
bzoj2823: [AHOI2012]信号塔&&1336: [Balkan2002]Alien最小圆覆盖&&1337: 最小圆覆盖
查看>>
四则运算随机生成器
查看>>
deeplenrnig学习笔记——什么是特征
查看>>
Java入门系列-23-NIO(使用缓冲区和通道对文件操作)
查看>>
来自java文档 HashMap类
查看>>
Java中的内部类(一)静态内部类
查看>>