我有一个一维视图实体数组
[
{
id: number
parentId: number
type: string
name: string
}
]
我想把它分解成React中的组织结构,所以 因此,parentId 与标记中另一个元素的 id 匹配的元素将成为其后代。该结构的最大深度为 4。我尝试在字段中的每个元素中使用嵌套数组进行布局children
- 原则上,一切正常,但我们有复杂性n^4
。结构最终应该是这样的:
<div id="1" class="wrapper">
<div class="item"></div>
<div class="row">
<div id="2" parent-id="1" class="wrapper">
<div class="item"></div>
</div>
<div id="3" parent-id="1" class="wrapper">
<div class="item"></div>
<div class="row">
<div id="4" parent-id="3" class="wrapper">
<div class="item"></div>
</div>
</div>
</div>
</div>
</div>
数组示例:
[
{
"id": 1,
"parentId": 0,
"type": "main",
"name": "Генеральный директор"
},
{
"id": 2,
"parentId": 1,
"type": "section",
"name": "Отдел найма"
},
{
"id": 3,
"parentId": 1,
"type": "section",
"name": "Отдел обучения"
},
{
"id": 4,
"parentId": 1,
"type": "section",
"name": "Отдел создания контента"
},
{
"id": 5,
"parentId": 3,
"type": "section",
"name": "Отдел создания контента"
},
{
"id": 6,
"parentId": 5,
"type": "section",
"name": "Отдел создания контента"
}
]