JavaScript Cascader 组件: 如何将县级数据添加到只有一个城市的 Children 中
{"title":"我希望在这段代码中加入一个功能,比如一个县的代码是110228,省份代码是110000,城市的代码只有110100一个,我希望把这个县也放进只有一个的城市的childern里function useCascaderAreaData() {\n const {\n city_list: city,\n county_list: county,\n province_list: province\n } = areaList;\n const provinceMap = /* @PURE / new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));\n });\n const cityMap = / @PURE */ new Map();\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, []);\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n city2.children.push(makeOption(county[code], code));\n }\n });\n return Array.from(provinceMap.values());\n}
内容:要将县的代码也放入只有一个城市的children中,可以在遍历county的时候,判断是否存在对应的城市,如果存在则将县的数据添加到城市的children中。\n\n修改后的代码如下:\n\njavascript\nfunction useCascaderAreaData() {\n const {\n city_list: city,\n county_list: county,\n province_list: province\n } = areaList;\n const provinceMap = /* @__PURE__ */ new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));\n });\n const cityMap = /* @__PURE__ */ new Map();\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, []);\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n const countyOption = makeOption(county[code], code);\n city2.children.push(countyOption);\n \n // 将县的数据添加到城市的children中\n const countyCity = cityMap.get(code.slice(0, 6));\n if (countyCity) {\n countyCity.children.push(countyOption);\n }\n }\n });\n return Array.from(provinceMap.values());\n}\n\n\n这样修改后,如果县的代码存在对应的城市,那么县的数据就会被添加到城市的children中。
原文地址: http://www.cveoy.top/t/topic/pMtB 著作权归作者所有。请勿转载和采集!