3 Star 6 Fork 2

igit-cn/province-city-china

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.js 2.21 KB
一键复制 编辑 原始数据 按行查看 历史
小弟调调 提交于 2018-11-15 14:32 . released v2.0.0
/**
* 县级(区县)信息
* @param {Array} arr 总数组
* @param {Number} code 县级(区县) code
* @param {Number} level [0,1,2,3] 返回层级
*/
function findAreaChild(arr, code, level) {
return arr.filter(item => {
// 四个直辖市 北京:11, 上海:31,天津:12,重庆市:50
if (/(11|31|12|50)/.test(item.province)) {
return (new RegExp(`^${code}`)).test(item.code) && item.town !== 0;
}
return (new RegExp(`^${code}`)).test(item.code) && item.town === 0 && item.area !== 0;
}).map((item) => {
return { ...item };
})
}
/**
* 序列化省市信息
* @param {Array} arr 总数组
* @return {Array} [序列化后的层级总数组]
*/
function findCityChild(arr, code, level) {
return arr.filter(item => {
if (/(70|81|82)/.test(item.province)) {
return false;
}
// 四个直辖市 北京:11, 上海:31,天津:12,重庆市:50
if (/(11|31|12|50)/.test(item.province)) {
return (new RegExp(`^${code}`)).test(item.code) && item.area !== 0 && item.town === 0;
}
return (new RegExp(`^${code}`)).test(item.code) && item.city !== 0 && item.area === 0 && item.town === 0;
}).map((item) => {
if (level > 1) {
const codeCom = /(11|31|12|50)/.test(item.province) ? `${code}${item.city}${item.area}` : `${code}${item.city}`;
item.children = findAreaChild(arr, codeCom, level);
}
delete item.town;
delete item.province;
return {
...item,
// code: /(11|31|12|50)/.test(code) ? item.area : item.city,
}
});
}
/**
* 序列化 省市区信息 第一级
* @param {Array} arr 总数组
* @param {Number} level [0,1,2,3] 返回层级
* @return {Array} [序列化后的总数组]
*/
exports.sortProvince = function sortProvince(arr, level) {
if (!level) level = 3;
return arr.filter(item => item.city === 0 && item.area === 0 && item.town === 0)
.map((item) => {
if (level > 0) {
item.children = findCityChild([...arr], item.province, level);
}
item.code = item.province;
if (item.children && item.children.length === 0) delete item.children;
delete item.province;
delete item.city;
delete item.area;
delete item.town;
return { ...item };
});
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/igit-cn/province-city-china.git
git@gitee.com:igit-cn/province-city-china.git
igit-cn
province-city-china
province-city-china
master

搜索帮助