我有一个带有parent字段的"页面"对象列表.此父字段引用列表中的另一个对象.我想基于此字段从此列表中创建树层次结构.
这是我的原始列表:
[
{
id: 1,
title: 'home',
parent: null
},
{
id: 2,
title: 'about',
parent: null
},
{
id: 3,
title: 'team',
parent: 2
},
{
id: 4,
title: 'company',
parent: 2
}
]
Run Code Online (Sandbox Code Playgroud)
我想将它转换为这样的树结构:
[
{
id: 1,
title: 'home',
parent: null
},
{
id: 2,
title: 'about',
parent: null,
children: [
{
id: 3,
title: 'team',
parent: 2
},
{
id: 4,
title: 'company',
parent: 2
}
]
]
Run Code Online (Sandbox Code Playgroud)
我希望有一个可重用的函数,我可以随时调用任意列表.有人知道处理这个问题的好方法吗?任何帮助或建议将不胜感激!
任何人都可以帮助转换以下父子对象列表:
[
{
"name":"root",
"_id":"root_id",
},
{
"name":"a1",
"parentAreaRef":{
"id":"root_id",
},
"_id":"a1_id",
},
{
"name":"a2",
"parentAreaRef":{
"id":"a1_id",
},
"_id":"a2_id",
},
{
"name":"a3",
"parentAreaRef":{
"id":"a2_id",
},
"_id":"a3_id",
},
{
"name":"b1",
"parentAreaRef":{
"id":"root_id",
},
"_id":"b1_id",
},
{
"name":"b2",
"parentAreaRef":{
"id":"b1_id",
},
"_id":"b2_id",
},
{
"name":"b3",
"parentAreaRef":{
"id":"b1_id",
},
"_id":"b3_id",
}
]
显示父子关系的树结构:
[
{
"name": "root",
"_id":"root_id",
"children": [
{
"name": "a1",
"_id":"a1_id",
"children" : [
{
"name" : "a2",
"_id":"a2_id",
"children" : [
{
"name" : "a3"
"_id":"a3_id"
}
]
} … 我试图从一系列对象中递归构建一棵树。我目前正在使用该reduce()方法遍历数组中的项目,找出哪些孩子属于特定项目并填充它,然后递归地填充这些孩子的孩子,依此类推。但是,我一直无法取最后一个节点(例如,在这种情况下为波斯和暹罗)并将它们放在数组中(请参见下面的预期和当前输出)
let categories = [
{ id: 'animals', parent: null },
{ id: 'mammals', parent: 'animals' },
{ id: 'cats', parent: 'mammals' },
{ id: 'dogs', parent: 'mammals' },
{ id: 'chihuahua', parent: 'dogs' },
{ id: 'labrador', parent: 'dogs' },
{ id: 'persian', parent: 'cats' },
{ id: 'siamese', parent: 'cats' }
];
const reduceTree = (categories, parent = null) =>
categories.reduce(
(tree, currentItem) => {
if(currentItem.parent == parent){
tree[currentItem.id] = reduceTree(categories, currentItem.id);
}
return tree;
}, …Run Code Online (Sandbox Code Playgroud) 我有一个json如下.
{
"id":14,
"discussion":8,
"parent":0,
"userid":2,
"subject":"communication skill discussion 2",
"message":"<p>hi all to communication discussion 2 </p>",
"children":[
24,
16,
15
]
},
{
"id":15,
"discussion":8,
"parent":14,
"userid":2,
"subject":"Re: communication skill discussion 2",
"message":"<p>hiiiiiiiiii</p>",
"children":[
25,
23
],
},
{
"id":23,
"discussion":8,
"parent":15,
"userid":2,
"created":1461562317,
"modified":1461562317,
"mailed":0,
"subject":"Re: communication skill discussion 2",
"message":"<p>helloooo</p>",
"children":[
],
}
Run Code Online (Sandbox Code Playgroud)
我想首先获取其ID与子数组中的elments匹配的详细信息,例如id:14有3个子项24,16,15.然后控件应该直接转到id:15并获取id的详细信息:15.Again id有孩子,例如.考虑id:23,没有孩子,将直接打印消息.
请指导我如何使用角度的ng-repeat实现此目的?
我想从平面数组构建一个树数组:
这是平面阵列:
nodes = [
{id: 1, pid: 0, name: "kpittu"},
{id: 2, pid: 0, name: "news"},
{id: 3, pid: 0, name: "menu"},
{id: 4, pid: 3, name: "node"},
{id: 5, pid: 4, name: "subnode"},
{id: 6, pid: 1, name: "cace"}
];
Run Code Online (Sandbox Code Playgroud)
注意:id = 节点 id;pid = 父节点 ID。
我想把它转换成这个数组:
nodes = [{
id: 1,
name: 'kpittu',
childs: [{
id: 6,
name: 'cace'
}]
}, {
id: 2,
name: 'news'
}, {
id: 3,
name: 'menu',
childs: [{
id: 4, …Run Code Online (Sandbox Code Playgroud) 我正在尝试转换来自数据库的对象的平面数组,以提供给需要嵌套结构才能管理可扩展子行的反应表。
我制作了一个 CodeSandbox ,它非常不言自明:
https://codesandbox.io/s/tender-chatterjee-kdssi?file=/src/App.js
基本上,我的原始数据的结构如下:
[
{
code: "A0",
parent: ""
},
{
code: "A01",
parent: "A0"
},
{
code: "A011",
parent: "A01"
},
{
code: "B0",
parent: ""
},
{
code: "B01",
parent: "B0"
},
{
code: "B011",
parent: "B01"
}
]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下结构:
[
{
code: "A0",
parent: "",
subRows: [
{
code: "A01",
parent: "A0",
subRows: [
{
code: "A011",
parent: "A01"
}
]
}
]
},
{
code: "B0",
parent: "",
subRows: [
{
code: "B01", …Run Code Online (Sandbox Code Playgroud) 我在存储的对象数组中有结构数据库,如下所示:
arry = [{"name": "a", "id": "2", "data":"foo", "parent": "1"},
{"name": "b", "id": "3", "data":"foo", "parent": "2"},
{"name": "c", "id": "4", "data":"foo", "parent": "3"},
{"name": "d", "id": "5", "data":"foo", "parent": "3"},
{"name": "e", "id": "6", "data":"foo", "parent": "4"},
{"name": "f", "id": "7", "data":"foo", "parent": "5"}]
Run Code Online (Sandbox Code Playgroud)
我想要这样的嵌套结构
{
"2":{
"name": "a",
"data": "foo",
"3":{
"name": "b",
"data":"foo",
"4":{
"name": "c",
"data":"foo",
"6":{
"name": "e",
"data": "foo",
};
},
"5":{
"name": "d",
"data": "foo",
"7":{
"name": "f",
"data": "foo"
}
}
} …Run Code Online (Sandbox Code Playgroud) javascript ×7
algorithm ×2
json ×2
typescript ×2
angular ×1
angular6 ×1
angularjs ×1
arrays ×1
ecmascript-6 ×1
hierarchy ×1
reactjs ×1
recursion ×1
tree ×1