前端城市地址根据最后一级倒推,获取各层级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;
};
相关推荐
钛态5 小时前
Vite 中的 CSS 工程化:从 CSS Modules 到 UnoCSS 的渐进式迁移
前端·vue·react·web
Csvn6 小时前
原型链、this 与闭包内存:三座深水区一次打通(含内存泄漏排查实战)
前端·javascript
葡萄城技术团队7 小时前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
浪兎兎7 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
Patrick_Wilson8 小时前
iOS Safari Clipboard API 权限弹窗问题
前端·ios·safari
OpenTiny社区8 小时前
Naive UI × GenUI SDK:自定义物料库搭建实战
前端·ai编程
kyriewen9 小时前
我拿 4 个真实前端任务试了 GLM-5.3 Flash:代码一遍跑通,账单 4 分钱
前端·程序员·ai编程
IT_陈寒9 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
风骏时光牛马9 小时前
AI编程常见问题梳理与要点解析
前端
前端snow9 小时前
ai agent -- LCEL 汇总
前端