const data = [
{
name: '北京市',
code: '110000',
children: [
{
name: '市辖区',
code: '110100',
children: [
{
name: '东城区',
code: '110101',
children: []
},
{
name: '西城区',
code: '110102',
children: []
},
// 其他区县...
]
},
// 其他市辖区...
]
},
// 其他省份...
{
name: '安徽省',
code: '340000',
children: [
{
name: '合肥市',
code: '340100',
children: [
{
name: '庐阳区',
code: '340103',
children: []
},
{
name: '蜀山区',
code: '110104',
children: []
},
// 其他区县...
]
},
// 其他市辖区...
]
},
];
通过name 查询相关code
以上代码定义了两个递归函数 findCodeByName
和 findCodeByChildren
,分别用于查找指定名称的区域的代码和查找指定区域的所有子区域的代码。其中,findCodeByName
函数首先在当前层级中查找是否存在指定名称的区域,如果找到了则返回该区域代码和其所有祖先区域的代码,否则递归查找其子区域。findCodeByChildren
函数用于查找指定区域的所有子区域的代码,它首先判断当前区域是否有子区域,如果没有则返回空数组,否则递归查找每个子区域的代码并将其合并为一个数组。最终,我们可以通过调用 findCodeByName
函数来获取指定区域的所有代码。
通过code 查询相关name
以上代码定义了两个递归函数 findNameByCode
和 findNameByAncestors
,分别用于查找指定代码的区域的名称和查找指定区域的所有祖先区域的名称。其中,findNameByCode
函数首先在当前层级中查找是否存在指定代码的区域,如果找到了则返回该区域名称和其所有祖先区域的名称,否则递归查找其子区域。findNameByAncestors
函数用于查找指定区域的所有祖先区域的名称,它首先判断当前区域是否有父区域,如果没有则返回空数组,否则递归查找其父区域的名称并将其合并为一个数组。最终,我们可以通过调用 findNameByCode
函数来获取指定区域的所有名称。