前端城市地址根据最后一级倒推,获取各层级id的方法

前端城市地址根据最后一级倒推,获取各层级id的方法

这个需要是后端返回最后一级地址的id,前端要去获取上级或上上级的id,实现数据返显。这里写了一个通用的方法,后面在任何地方直接调用即可。

复制代码
/**
 * 根据最终区域code,获取省市区区域code路径数组
 * regionDatas 地址数组
 * @param finalCode 区域code,例如 "110101" 表示北京市朝阳区东城区
 * @returns string[] 省市区区域code路径数组,例如 ["110000", "110100", "110101"] 表示北京市朝阳区东城区
 */
export const getRegionArrByFinalCode = (finalCode: string | number, regionDatas: any[]) => {
  if (!Array.isArray(regionDatas) || !regionDatas.length) return [];
  let result: string[] = [];
  const dfs = (data: any[], path: string[] = []) => {
    for (const item of data) {
      if (!item) continue;
      const currentPath = [...path, item.region];
      if (item.region == finalCode) {
        result = currentPath;
        return true;
      }
      if (item.children && dfs(item.children, currentPath)) return true;
    }
    return false;
  };
  dfs(regionDatas);
  return result;
};
相关推荐
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u01110267510 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说10 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa11 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端
deli00711 小时前
DLA 枝晶生长实测:5000 个粒子集体停摆之后,分形维数收敛到 1.70
前端
IT_陈寒11 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端
可乐鸡翅yeah_11 小时前
video.js 集成 hls.js 开发 M3U8 播放器,新手高频踩坑
开发语言·前端·javascript·后端·ecmascript·m3u8·音视频在线播放
程序猿追12 小时前
HarmonyOS 6 上做个极简浏览器:Web 组件 + 前进后退 + 加载进度
前端·华为·harmonyos
沐沐师12 小时前
Mybatis 框架教程
前端
wflynn12 小时前
GitHub 今日推荐|ts-rust:把微软 TypeScript-Go 编译器逐行移植成 Rust 实现
rust·typescript·开源·github·compiler·tsc