根据省市区数据 通过name 查询相关code以及code查name

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 函数来获取指定区域的所有名称。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值