zoukankan      html  css  js  c++  java
  • js-原生Js汉语拼音首字母匹配城市名

    原生Js汉语拼音首字母匹配城市名

    2018-04-10 09:49:30 luck_lin 阅读数 1520更多

    分类专栏: javascript

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    本文链接:https://blog.csdn.net/qwe502763576/article/details/79876451

    placeData.js:
    
     
    1. var cityData = ['北京|beijing|bj','上海|shanghai|sh', '重庆|chongqing|cq', '深圳|shenzhen|sz', '广州|guangzhou|gz', '杭州|hangzhou|hz',

    2. '南京|nanjing|nj', '苏州|shuzhou|sz', '天津|tianjin|tj', '成都|chengdu|cd', '南昌|nanchang|nc', '三亚|sanya|sy','青岛|qingdao|qd',

    3. '厦门|xiamen|xm', '西安|xian|xa','长沙|changsha|cs','合肥|hefei|hf','西藏|xizang|xz', '内蒙古|neimenggu|nmg', '安庆|anqing|aq', '阿泰勒|ataile|atl', '安康|ankang|ak',

    4. '阿克苏|akesu|aks', '包头|baotou|bt', '北海|beihai|bh', '百色|baise|bs','保山|baoshan|bs', '长治|changzhi|cz', '长春|changchun|cc', '常州|changzhou|cz', '昌都|changdu|cd',

    5. '朝阳|chaoyang|cy', '常德|changde|cd', '长白山|changbaishan|cbs', '赤峰|chifeng|cf', '大同|datong|dt', '大连|dalian|dl', '达县|daxian|dx', '东营|dongying|dy', '大庆|daqing|dq', '丹东|dandong|dd',

    6. '大理|dali|dl', '敦煌|dunhuang|dh', '鄂尔多斯|eerduosi|eeds', '恩施|enshi|es', '福州|fuzhou|fz', '阜阳|fuyang|fy', '贵阳|guiyang|gy',

    7. '桂林|guilin|gl', '广元|guangyuan|gy', '格尔木|geermu|gem', '呼和浩特|huhehaote|hhht', '哈密|hami|hm',

    8. '黑河|heihe|hh', '海拉尔|hailaer|hle', '哈尔滨|haerbin|heb', '海口|haikou|hk', '黄山|huangshan|hs', '邯郸|handan|hd',

    9. '汉中|hanzhong|hz', '和田|hetian|ht', '晋江|jinjiang|jj', '锦州|jinzhou|jz', '景德镇|jingdezhen|jdz',

    10. '嘉峪关|jiayuguan|jyg', '井冈山|jinggangshan|jgs', '济宁|jining|jn', '九江|jiujiang|jj', '佳木斯|jiamusi|jms', '济南|jinan|jn',

    11. '喀什|kashi|ks', '昆明|kunming|km', '康定|kangding|kd', '克拉玛依|kelamayi|klmy', '库尔勒|kuerle|kel', '库车|kuche|kc', '兰州|lanzhou|lz',

    12. '洛阳|luoyang|ly', '丽江|lijiang|lj', '林芝|linzhi|lz', '柳州|liuzhou|lz', '泸州|luzhou|lz', '连云港|lianyungang|lyg', '黎平|liping|lp',

    13. '连成|liancheng|lc', '拉萨|lasa|ls', '临沧|lincang|lc', '临沂|linyi|ly', '芒市|mangshi|ms', '牡丹江|mudanjiang|mdj', '满洲里|manzhouli|mzl', '绵阳|mianyang|my',

    14. '梅县|meixian|mx', '漠河|mohe|mh', '南充|nanchong|nc', '南宁|nanning|nn', '南阳|nanyang|ny', '南通|nantong|nt', '那拉提|nalati|nlt',

    15. '宁波|ningbo|nb', '攀枝花|panzhihua|pzh', '衢州|quzhou|qz', '秦皇岛|qinhuangdao|qhd', '庆阳|qingyang|qy', '齐齐哈尔|qiqihaer|qqhe',

    16. '石家庄|shijiazhuang|sjz', '沈阳|shenyang|sy', '思茅|simao|sm', '铜仁|tongren|tr', '塔城|tacheng|tc', '腾冲|tengchong|tc', '台州|taizhou|tz',

    17. '通辽|tongliao|tl', '太原|taiyuan|ty', '威海|weihai|wh', '梧州|wuzhou|wz', '文山|wenshan|ws', '无锡|wuxi|wx', '潍坊|weifang|wf', '武夷山|wuyishan|wys', '乌兰浩特|wulanhaote|wlht',

    18. '温州|wenzhou|wz', '乌鲁木齐|wulumuqi|wlmq', '万州|wanzhou|wz', '乌海|wuhai|wh', '兴义|xingyi|xy', '西昌|xichang|xc', '襄樊|xiangfan|xf',

    19. '西宁|xining|xn', '锡林浩特|xilinhaote|xlht', '西双版纳|xishuangbanna|xsbn', '徐州|xuzhou|xz', '义乌|yiwu|yw', '永州|yongzhou|yz', '榆林|yulin|yl', '延安|yanan|ya', '运城|yuncheng|yc',

    20. '烟台|yantai|yt', '银川|yinchuan|yc', '宜昌|yichang|yc', '宜宾|yibin|yb', '盐城|yancheng|yc', '延吉|yanji|yj', '玉树|yushu|ys', '伊宁|yining|yn', '珠海|zhuhai|zh', '昭通|zhaotong|zt',

    21. '张家界|zhangjiajie|zjj', '舟山|zhoushan|zs', '郑州|zhengzhou|zz', '中卫|zhongwei|zw', '芷江|zhijiang|zj', '湛江|zhanjiang|zj'];

    22.  
    23.  
    24. var iCity = {

    25. cityClass : function(){ //城市分类

    26. if(!this.citys){

    27. //{HOT:{hot:[],ABCDEFG:{a:[1,2,3],b:[1,2,3]},HJKLMN:{},PQST:{},VWXYZ:{}}

    28. this.citys = {"hotCity":[],"ABCDEFG":{},"HJKLMN":{},"PQST":{},"WXYZ":{}};

    29. var make,fn,name,

    30. reg1 = /^[a-g]$/i, reg2 = /^[h-n]$/i, reg3 = /^[o-u]$/i,reg4 = /^[v-z]$/i;

    31.  
    32. for(var i in cityData){

    33. make = cityData[i].split("|"); //分割成数组

    34. fn = make[2].substring(0,1).toUpperCase(); //获取英文第一个字母转换成大写

    35. name = make[0];

    36. if(reg1.test(fn)){

    37. if(!this.citys.ABCDEFG[fn]) this.citys.ABCDEFG[fn]=[];

    38. this.citys.ABCDEFG[fn].push(name)

    39. }else if(reg2.test(fn)){

    40. if(!this.citys.HJKLMN[fn]) this.citys.HJKLMN[fn]=[];

    41. this.citys.HJKLMN[fn].push(name)

    42. }else if(reg3.test(fn)){

    43. if(!this.citys.PQST[fn]) this.citys.PQST[fn]=[];

    44. this.citys.PQST[fn].push(name)

    45. }else if(reg4.test(fn)){

    46. if(!this.citys.WXYZ[fn]) this.citys.WXYZ[fn]=[];

    47. this.citys.WXYZ[fn].push(name)

    48. }

    49. if(i<20) this.citys.hotCity.push(name);

    50. }

    51. }

    52. }

    53. }

    54. iCity.cityClass();

    55. export default iCity.citys;

    react组件:
    
     
    1. import React, {Component} from 'react';

    2. import data from './placeData';

    3.  
    4. import {

    5. Link //模板切换的组件

    6. } from 'react-router-dom';

    7.  
    8. class PlaceMain extends Component{

    9. render(){

    10. let pathname = this.props.currentPath;//获取当前请求该组件luyou,以便于点击后携带参数往哪个路由跳转

    11.  
    12. let ABCDEFG = data.ABCDEFG;

    13. let arrABCDEFG = [];

    14. [].slice.call('ABCDEFG').forEach(v=>{

    15. arrABCDEFG = arrABCDEFG.concat(ABCDEFG[v]);

    16. })

    17. arrABCDEFG.title = "ABCDEFG";

    18.  
    19. let HJKLMN = data.HJKLMN;

    20. let arrHJKLMN = [];

    21. [].slice.call('HJKLMN').forEach(v=>{

    22. arrHJKLMN = arrHJKLMN.concat(HJKLMN[v]);

    23. })

    24. arrHJKLMN.title = "HJKLMN";

    25.  
    26. let PQST = data.PQST;

    27. let arrPQST = [];

    28. [].slice.call('PQST').forEach(v=>{

    29. arrPQST = arrPQST.concat(PQST[v]);

    30. })

    31. arrPQST.title = "PQST";

    32.  
    33. let WXYZ = data.WXYZ;

    34. let arrWXYZ = [];

    35. [].slice.call('WXYZ').forEach(v=>{

    36. arrWXYZ = arrWXYZ.concat(WXYZ[v]);

    37. })

    38. arrWXYZ.title = "WXYZ";

    39. let hotCity = data.hotCity;

    40. hotCity.title = "热门城市";

    41. let AllCity =[hotCity, arrABCDEFG, arrHJKLMN, arrPQST, arrWXYZ].map((v, i)=>{

    42. return(

    43. <dl key={i}>

    44. <dt>{v.title}</dt>

    45. <dd>

    46. {v.map((val, idx)=>{

    47. return <Link key={idx} to={ {pathname, state: {place: val}} }>{val}</Link>

    48. })}

    49. </dd>

    50. </dl>

    51. )

    52. })

    53. return(

    54. <main>

    55. {AllCity}

    56. </main>

    57. )

    58. }

    59. }

    60. export default PlaceMain;

    61.  
  • 相关阅读:
    启用oracle 11g自己主动收集统计信息
    在java中,怎样跳出当前的多重循环?
    从编程的角度理解gradle脚本﹘﹘Android Studio脚本构建和编程[魅族Degao]
    【SpringMVC架构】SpringMVC入门实例,解析工作原理(二)
    实现icon和文字垂直居中的两种方法-(vertical-align and line-height)
    android发送get请求时报错
    KeyEvent 键码值
    Android-黑科技-微信抢红包必备软件
    Delicious Apples (hdu 5303 贪心+枚举)
    vim 插件配置博客记录
  • 原文地址:https://www.cnblogs.com/grj001/p/12223408.html
Copyright © 2011-2022 走看看