原数组如下
const factory_list = [
{ "id": 1, "name": "湖北工厂" },
{ "id": 2, "name": "广东工厂" },
{ "id": 3, "name": "河北工厂" },
{ "id": 4, "name": "四川工厂" },
{ "id": 5, "name": "重庆工厂" }
]
const factory_region_list = [
{ "id": 1, "name": "本部", "factory_id": 1 },
{ "id": 2, "name": "二园区", "factory_id": 1 },
{ "id": 3, "name": "本部", "factory_id": 2 },
{ "id": 5, "name": "本部", "factory_id": 3 },
{ "id": 6, "name": "本部", "factory_id": 4 },
{ "id": 7, "name": "本部", "factory_id": 5 },
]
const factory_line_list = [
{ "id": 1, "name": "一产线", "factory_id": 1, "factory_region_id": 1, },
{ "id": 3, "name": "一产线", "factory_id": 2, "factory_region_id": 3, },
{ "id": 4, "name": "二产线", "factory_id": 1, "factory_region_id": 2, },
{ "id": 5, "name": "三产线", "factory_id": 1, "factory_region_id": 2, },
{ "id": 6, "name": "八产线", "factory_id": 3, "factory_region_id": 5, },
{ "id": 7, "name": "一产线", "factory_id": 3, "factory_region_id": 5, },
{ "id": 8, "name": "六产线", "factory_id": 3, "factory_region_id": 5, },
{ "id": 9, "name": "二产线", "factory_id": 3, "factory_region_id": 5, },
{ "id": 10, "name": "一产线", "factory_id": 4, "factory_region_id": 6, },
{ "id": 11, "name": "本部", "factory_id": 5, "factory_region_id": 7, },
{ "id": 12, "name": "外协", "factory_id": 5, "factory_region_id": 7, },
{ "id": 14, "name": "外包组", "factory_id": 5, "factory_region_id": 3, },
{ "id": 15, "name": "一产线", "factory_id": 5, "factory_region_id": 3, },
{ "id": 16, "name": "五产线", "factory_id": 3, "factory_region_id": 5, },
{ "id": 17, "name": "铁产线", "factory_id": 4, "factory_region_id": 6, },
]
想要下面这样的数据结构
[
{
"value": 1,
"label": "湖北工厂",
"children": [
{
"value": 3,
"label": "本部",
"children": [
{
"value": 1,
"label": "一产线"
}
]
}
]
}
]
我自己是套了很多层的for来实现的,觉得性能不是很好,有没有更加优雅的写法各位大佬
空间换时间思路:嵌套太多用 hash 表优化
整个过程化就变成了的时间复杂度就变成了
线性的复杂度
。补充:这个转换过程其实是重复的,上面的代码供参考,需要自己封装优化。