UNPKG

mockz

Version:

generate chinese province,city,county,address.

66 lines (54 loc) 1.43 kB
const _ = require('lodash'); const allData = require('./data.json'); // 全部数据 const all = () => allData; // 省级 const province = () => { const idx = _.random(allData.length - 1); return allData[idx].name; }; // 市级 const city = (provName) => { const pidx = _.random(allData.length - 1); let prov = allData[pidx]; const pArr = _.filter(allData, { name: provName }); if (pArr.length > 0) { [prov] = pArr; } const cidx = _.random(prov.children.length - 1); return prov.children[cidx].name; }; // 县级 const county = (provName, cityName) => { const pidx = _.random(allData.length - 1); let prov = allData[pidx]; const pArr = _.filter(allData, { name: provName }); if (pArr.length > 0) { [prov] = pArr; } const cidx = _.random(prov.children.length - 1); let ct = prov.children[cidx]; const cArr = _.filter(prov.children, { name: cityName }); if (cArr.length > 0) { [ct] = cArr; } const idx = _.random(ct.children.length - 1); return ct.children[idx].name; }; // 地址 const address = () => { const pidx = _.random(allData.length - 1); const prov = allData[pidx]; const cidx = _.random(prov.children.length - 1); const ct = prov.children[cidx]; const cyidx = _.random(ct.children.length - 1); const cy = ct.children[cyidx]; return `${prov.name}${ct.name}${cy.name}`; }; module.exports = { all, province, city, county, address, };