随机生成中国内地城市地址的JavaScript函数示例

ChatGPT4o 使用 ChatGPT 4o 回答

问题:

使用js编写一个随机生成中国内地城市地址的函数,省份包括:北京市,天津市,河北省,山西省,内蒙古,辽宁省,吉林省,黑龙江省,山东省,地址由:省-市-区来组成。需要包含中国内地的完整省-市-区的数据。

回答:

要编写一个随机生成中国内地城市地址的函数,我们需要一个包含省、市、区的完整数据结构。由于数据量较大,这里提供一个简化版本的示例,包含部分省、市、区的数据。你可以根据需要扩展这个数据结构。

const chinaAddressData = {
    "北京市": {
        "市辖区": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云区", "延庆区"]
    },
    "天津市": {
        "市辖区": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "滨海新区", "宁河区", "静海区", "蓟州区"]
    },
    "河北省": {
        "石家庄市": ["长安区", "桥西区", "新华区", "井陉矿区", "裕华区", "藁城区", "鹿泉区", "栾城区"],
        "唐山市": ["路南区", "路北区", "古冶区", "开平区", "丰南区", "丰润区", "曹妃甸区"]
    },
    "山西省": {
        "太原市": ["小店区", "迎泽区", "杏花岭区", "尖草坪区", "万柏林区", "晋源区"],
        "大同市": ["城区", "矿区", "南郊区", "新荣区"]
    },
    "内蒙古": {
        "呼和浩特市": ["新城区", "回民区", "玉泉区", "赛罕区"],
        "包头市": ["东河区", "昆都仑区", "青山区", "石拐区", "白云鄂博矿区", "九原区"]
    },
    "辽宁省": {
        "沈阳市": ["和平区", "沈河区", "大东区", "皇姑区", "铁西区", "苏家屯区", "浑南区", "沈北新区", "于洪区"],
        "大连市": ["中山区", "西岗区", "沙河口区", "甘井子区", "旅顺口区", "金州区"]
    },
    "吉林省": {
        "长春市": ["南关区", "宽城区", "朝阳区", "二道区", "绿园区", "双阳区", "九台区"],
        "吉林市": ["昌邑区", "龙潭区", "船营区", "丰满区"]
    },
    "黑龙江省": {
        "哈尔滨市": ["道里区", "南岗区", "道外区", "平房区", "松北区", "香坊区", "呼兰区", "阿城区"],
        "齐齐哈尔市": ["龙沙区", "建华区", "铁锋区", "昂昂溪区", "富拉尔基区", "碾子山区", "梅里斯达斡尔族区"]
    },
    "山东省": {
        "济南市": ["历下区", "市中区", "槐荫区", "天桥区", "历城区", "长清区"],
        "青岛市": ["市南区", "市北区", "黄岛区", "崂山区", "李沧区", "城阳区"]
    }
};

function getRandomElement(arr) {
    return arr[Math.floor(Math.random() * arr.length)];
}

function generateRandomAddress() {
    const provinces = Object.keys(chinaAddressData);
    const selectedProvince = getRandomElement(provinces);
    const cities = Object.keys(chinaAddressData[selectedProvince]);
    const selectedCity = getRandomElement(cities);
    const districts = chinaAddressData[selectedProvince][selectedCity];
    const selectedDistrict = getRandomElement(districts);

    return `${selectedProvince}-${selectedCity}-${selectedDistrict}`;
}

console.log(generateRandomAddress());

这个函数 generateRandomAddress 会随机生成一个中国内地的地址,格式为 省-市-区。你可以根据需要扩展 chinaAddressData 对象,添加更多的省、市和区。