这是创建一个带子菜单的菜单。
如果有任何帮助,我创建了一个JsFiddle来可视化我想要的内容(用HTML格式)。
我有一个没有特定顺序的一维数组:
[
{ id: 1, name: AAA },
{ id: 2, name: BBB, parent_id: 1 },
{ id: 3, name: CCC, parent_id: 2 },
{ id: 4, name: DDD, parent_id: 6 },
{ id: 5, name: EEE },
{ id: 6, name: FFF, parent_id: 1 },
{ id: 7, name: GGG, parent_id: 2 },
]
并且想要创建它,基本上:
- IF项目有parent_id
- 将其放在关键子项内的parent_id下:[..]
- ELSE
- 将项目直接放在新数组
下
这必须能够支持无限数量的嵌套子项。
[
{
id: 1,
name: AAA,
childs: [{
id: 2,
name: BBB,
childs: [{
id: 3,
name: CCC
}, {
id: 7,
name: GGG
}]
}, {
id: 6,
name: FFF,
childs: [{
id: 4,
name: DDD
}]
}]
}, {
id: 5,
name: EEE
}
]
由于初始数组的顺序未知,而parent_ids可以在该数组中的实际父数据之前,我不知道该怎么做。
谢谢!
答案 0 :(得分:0)
您需要多次遍历数组:
parent_id
的所有项目。它们是根级别的项目。把它们放在一个新的数组中。从原始阵列中删除它们。parent_id
位于新数组中,则检查所有项目。如果是,则将其作为parent_id
项的子项放入新数组中。从原始阵列中删除它们。