【发布时间】:2021-11-21 02:52:20
【问题描述】:
我有一个源数组如下:
var source = [
{
node : 1,
text : "pen",
parent : null
},
{
node : 11,
text : "pencil",
parent : 1
},
{
node : 12,
text : "mango",
parent : 1
},
{
node : 111,
text : "mango",
parent : 11
},
{
node : 112,
text : "banana",
parent : 11
},
{
node : 211,
text : "Cilli",
parent : 12
},
{
node : 1111,
text : "banana",
parent : 111
},
{
node : 2,
text : "Grapes",
parent : null
},
{
node : 21,
text : "Mango",
parent : 2
},
{
node : 3,
text : "banana",
parent : null
},
]
所以你看到节点 1 的父节点为空,因此它是父节点。 此外,节点 11 的父节点是 1,因此 11 是节点 1 的子节点,依此类推。我想要一个如下创建的目标数组:我需要使用下面的数组来创建一棵树
var target = [
{
node : 1 ,
children :[
{
node : 11,
children : [
{
node : 111,
children :[
{
node:1111,
children :[]
}]
},
{
node : 112,
children:[]
}
]
},
{
node : 12,
children : []
},
]
},
{
node : 2,
children :[
{
node : 21,
children :[]
}]
},
{
node:3,
children:[]
}
]
我正在尝试 array.forEach 但这并没有多大帮助
【问题讨论】:
-
如果有机会我会再看一遍,但你应该看看 array.reduce。这就是处理此类事情的方法
标签: javascript arrays