| // geo 'https://raw.githubusercontent.com/88250/city-geo/master/data.json' | 
| // provinces 'https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/provinces.json' | 
| // cities 'https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/cities.json' | 
|   | 
| const fs = require('fs') | 
| const pinyin = require('js-pinyin') | 
|   | 
| let geo = require('./assets/geo') | 
| let provinces = require('./assets/provinces') | 
| let cities = require('./assets/cities') | 
|   | 
| // 省直辖县级行政区划 | 
| let areas = ['4190', '4290', '4690', '6590'] | 
| cities = cities.filter(city => !areas.includes(city.code)) | 
|   | 
| // 直辖市 | 
| let aCity = ['1101', '1201', '3101', '5001'] | 
|   | 
| cities.forEach(city => { | 
|     city.province = provinces.find(province => province.code === city.provinceCode).name | 
|     if (aCity.includes(city.code)) { | 
|         city.name = city.province | 
|     } | 
|     let g = geo.find(g => g.city === city.name || g.province === city.name) | 
|     city.lat = g.lat | 
|     city.lng = g.lng | 
|     if (city.name.lastIndexOf('市') === city.name.length - 1) { | 
|         city.name = city.name.slice(0, city.name.length - 1) | 
|     } | 
| }) | 
|   | 
| // A-Z | 
| let json = [] | 
|   | 
| for (var i = 0; i < 26; i++) { | 
|     json.push({ | 
|         initial: String.fromCharCode(65 + i), | 
|         list: [] | 
|     }) | 
| } | 
|   | 
| json.forEach(j => { | 
|     cities.forEach(city => { | 
|         if (pinyin.getFullChars(city.name).slice(0, 1) === j.initial) { | 
|             j.list.push(city) | 
|         } | 
|     }) | 
| }) | 
|   | 
| // 过滤空数组 | 
| json = json.filter(j => j.list.length) | 
|   | 
| fs.writeFileSync('./cities.json', JSON.stringify(json)) |