应用场景:选择国家编号、前缀,按照 a-z 顺序分割。

代码:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.中文

json 文件

分割 各国名称 随笔 第1张
[{
        "name": "阿尔巴尼亚",
        "code": "355",
        "initial": "A"
    }, {
        "name": "阿尔及利亚",
        "code": "213"
    }, {
        "name": "阿富汗",
        "code": "93"
    }, {
        "name": "阿根廷",
        "code": "54"
    }, {
        "name": "爱尔兰",
        "code": "353"
    }, {
        "name": "埃及",
        "code": "20"
    }, {
        "name": "埃塞俄比亚",
        "code": "251"
    }, {
        "name": "爱沙尼亚",
        "code": "372"
    }, {
        "name": "阿拉伯联合酋长国",
        "code": "971"
    }, {
        "name": "阿鲁巴",
        "code": "297"
    }, {
        "name": "阿曼",
        "code": "968"
    }, {
        "name": "安道尔",
        "code": "376"
    }, {
        "name": "安哥拉",
        "code": "244"
    }, {
        "name": "安圭拉",
        "code": "1264"
    }, {
        "name": "安提瓜和巴布达",
        "code": "1268"
    }, {
        "name": "澳大利亚",
        "code": "61"
    }, {
        "name": "奥地利",
        "code": "43"
    }, {
        "name": "阿塞拜疆",
        "code": "994"
    }, {
        "name": "巴巴多斯",
        "code": "1246",
        "initial": "B"
    }, {
        "name": "巴布亚新几内亚",
        "code": "675"
    }, {
        "name": "巴哈马",
        "code": "1242"
    }, {
        "name": "白俄罗斯",
        "code": "375"
    }, {
        "name": "百慕大",
        "code": "1441"
    }, {
        "name": "巴基斯坦",
        "code": "92"
    }, {
        "name": "巴拉圭",
        "code": "595"
    }, {
        "name": "巴林",
        "code": "973"
    }, {
        "name": "巴拿马",
        "code": "507"
    }, {
        "name": "保加利亚",
        "code": "359"
    }, {
        "name": "巴西",
        "code": "55"
    }, {
        "name": "北马里亚纳群岛",
        "code": "1670"
    }, {
        "name": "贝宁",
        "code": "229"
    }, {
        "name": "比利时",
        "code": "32"
    }, {
        "name": "冰岛",
        "code": "354"
    }, {
        "name": "博茨瓦纳",
        "code": "267"
    }, {
        "name": "波多黎各",
        "code": "1"
    }, {
        "name": "波兰",
        "code": "48"
    }, {
        "name": "玻利维亚",
        "code": "591"
    }, {
        "name": "伯利兹",
        "code": "501"
    }, {
        "name": "波斯尼亚和黑塞哥维那",
        "code": "387"
    }, {
        "name": "不丹",
        "code": "975"
    }, {
        "name": "布基纳法索",
        "code": "226"
    }, {
        "name": "布隆迪",
        "code": "257"
    }, {
        "name": "朝鲜",
        "code": "850",
        "initial": "C"
    }, {
        "name": "赤道几内亚",
        "code": "240"
    }, {
        "name": "丹麦",
        "code": "45",
        "initial": "D"
    }, {
        "name": "德国",
        "code": "49"
    }, {
        "name": "东帝汶",
        "code": "670"
    }, {
        "name": "多哥",
        "code": "228"
    }, {
        "name": "多米尼加",
        "code": "1767"
    }, {
        "name": "多米尼加共和国",
        "code": "1809"
    }, {
        "name": "厄瓜多尔",
        "code": "593",
        "initial": "E"
    }, {
        "name": "厄立特里亚",
        "code": "291"
    }, {
        "name": "俄罗斯",
        "code": "7"
    }, {
        "name": "法国",
        "code": "33",
        "initial": "F"
    }, {
        "name": "法罗群岛",
        "code": "298"
    }, {
        "name": "梵蒂冈",
        "code": "39"
    }, {
        "name": "法属波利尼西亚",
        "code": "689"
    }, {
        "name": "斐济",
        "code": "679"
    }, {
        "name": "菲律宾",
        "code": "63"
    }, {
        "name": "芬兰",
        "code": "358"
    }, {
        "name": "佛得角",
        "code": "238"
    }, {
        "name": "福克兰群岛",
        "code": "500"
    }, {
        "name": "冈比亚",
        "code": "220",
        "initial": "G"
    }, {
        "name": "刚果(布)",
        "code": "242"
    }, {
        "name": "刚果(金)",
        "code": "243"
    }, {
        "name": "格陵兰",
        "code": "299"
    }, {
        "name": "格林纳达",
        "code": "1473"
    }, {
        "name": "格鲁吉亚",
        "code": "995"
    }, {
        "name": "哥伦比亚",
        "code": "57"
    }, {
        "name": "哥斯达黎加",
        "code": "506"
    }, {
        "name": "关岛",
        "code": "1671"
    }, {
        "name": "古巴",
        "code": "53"
    }, {
        "name": "圭亚那",
        "code": "592"
    }, {
        "name": "海地",
        "code": "509",
        "initial": "H"
    }, {
        "name": "韩国",
        "code": "82"
    }, {
        "name": "哈萨克斯坦",
        "code": "7"
    }, {
        "name": "黑山共和国",
        "code": "382"
    }, {
        "name": "荷兰",
        "code": "31"
    }, {
        "name": "荷属安的列斯群岛",
        "code": "599"
    }, {
        "name": "洪都拉斯",
        "code": "504"
    }, {
        "name": "加纳",
        "code": "233",
        "initial": "J"
    }, {
        "name": "加拿大",
        "code": "1"
    }, {
        "name": "柬埔寨",
        "code": "855"
    }, {
        "name": "加蓬",
        "code": "241"
    }, {
        "name": "吉布提",
        "code": "253"
    }, {
        "name": "捷克共和国",
        "code": "420"
    }, {
        "name": "吉尔吉斯斯坦",
        "code": "996"
    }, {
        "name": "基里巴斯",
        "code": "686"
    }, {
        "name": "几内亚",
        "code": "224"
    }, {
        "name": "几内亚比绍",
        "code": "245"
    }, {
        "name": "开曼群岛",
        "code": "1345",
        "initial": "K"
    }, {
        "name": "喀麦隆",
        "code": "237"
    }, {
        "name": "卡塔尔",
        "code": "974"
    }, {
        "name": "科科斯群岛",
        "code": "61"
    }, {
        "name": "克罗地亚",
        "code": "385"
    }, {
        "name": "科摩罗",
        "code": "269"
    }, {
        "name": "肯尼亚",
        "code": "254"
    }, {
        "name": "科特迪瓦",
        "code": "225"
    }, {
        "name": "科威特",
        "code": "965"
    }, {
        "name": "库克群岛",
        "code": "682"
    }, {
        "name": "莱索托",
        "code": "266",
        "initial": "L"
    }, {
        "name": "老挝人民民主共和国",
        "code": "856"
    }, {
        "name": "拉脱维亚",
        "code": "371"
    }, {
        "name": "黎巴嫩",
        "code": "961"
    }, {
        "name": "利比里亚",
        "code": "231"
    }, {
        "name": "利比亚",
        "code": "218"
    }, {
        "name": "列支敦士登",
        "code": "423"
    }, {
        "name": "立陶宛",
        "code": "370"
    }, {
        "name": "罗马尼亚",
        "code": "40"
    }, {
        "name": "卢森堡",
        "code": "352"
    }, {
        "name": "卢旺达",
        "code": "250"
    }, {
        "name": "马达加斯加",
        "code": "261",
        "initial": "M"
    }, {
        "name": "马尔代夫",
        "code": "960"
    }, {
        "name": "马耳他",
        "code": "356"
    }, {
        "name": "马来西亚",
        "code": "60"
    }, {
        "name": "马拉维",
        "code": "265"
    }, {
        "name": "马里",
        "code": "223"
    }, {
        "name": "曼岛",
        "code": "44"
    }, {
        "name": "毛里求斯",
        "code": "230"
    }, {
        "name": "毛里塔尼亚",
        "code": "222"
    }, {
        "name": "马其顿",
        "code": "389"
    }, {
        "name": "马绍尔群岛",
        "code": "692"
    }, {
        "name": "马约特",
        "code": "262"
    }, {
        "name": "美国",
        "code": "1"
    }, {
        "name": "美属萨摩亚",
        "code": "1684"
    }, {
        "name": "美属维京群岛",
        "code": "1340"
    }, {
        "name": "蒙古",
        "code": "976"
    }, {
        "name": "孟加拉国",
        "code": "880"
    }, {
        "name": "蒙塞拉特群岛",
        "code": "1664"
    }, {
        "name": "缅甸",
        "code": "95"
    }, {
        "name": "密克罗尼西亚联邦",
        "code": "691"
    }, {
        "name": "秘鲁",
        "code": "51"
    }, {
        "name": "摩尔多瓦",
        "code": "373"
    }, {
        "name": "摩洛哥",
        "code": "212"
    }, {
        "name": "摩纳哥",
        "code": "377"
    }, {
        "name": "莫桑比克",
        "code": "258"
    }, {
        "name": "墨西哥",
        "code": "52"
    }, {
        "name": "纳米比亚",
        "code": "264",
        "initial": "N"
    }, {
        "name": "南非",
        "code": "27"
    }, {
        "name": "南极洲",
        "code": "672"
    }, {
        "name": "瑙鲁",
        "code": "674"
    }, {
        "name": "尼泊尔",
        "code": "977"
    }, {
        "name": "尼加拉瓜",
        "code": "505"
    }, {
        "name": "尼日尔",
        "code": "227"
    }, {
        "name": "尼日利亚",
        "code": "234"
    }, {
        "name": "纽埃",
        "code": "683"
    }, {
        "name": "挪威",
        "code": "47"
    }, {
        "name": "帕劳",
        "code": "680",
        "initial": "P"
    }, {
        "name": "皮特凯恩群岛",
        "code": "870"
    }, {
        "name": "葡萄牙",
        "code": "351"
    }, {
        "name": "日本",
        "code": "81",
        "initial": "R"
    }, {
        "name": "瑞典",
        "code": "46"
    }, {
        "name": "瑞士",
        "code": "41"
    }, {
        "name": "萨尔瓦多",
        "code": "503",
        "initial": "S"
    }, {
        "name": "塞尔维亚",
        "code": "381"
    }, {
        "name": "塞拉利昂",
        "code": "232"
    }, {
        "name": "塞内加尔",
        "code": "221"
    }, {
        "name": "塞浦路斯",
        "code": "357"
    }, {
        "name": "塞舌尔群岛",
        "code": "248"
    }, {
        "name": "萨摩亚",
        "code": "685"
    }, {
        "name": "沙特阿拉伯",
        "code": "966"
    }, {
        "name": "圣巴泰勒米",
        "code": "590"
    }, {
        "name": "圣诞岛",
        "code": "61"
    }, {
        "name": "圣多美和普林西比",
        "code": "239"
    }, {
        "name": "圣赫勒拿",
        "code": "290"
    }, {
        "name": "圣基茨和尼维斯",
        "code": "1869"
    }, {
        "name": "圣卢西亚",
        "code": "1758"
    }, {
        "name": "圣马丁",
        "code": "1599"
    }, {
        "name": "圣马力诺",
        "code": "378"
    }, {
        "name": "圣皮埃尔和密克隆",
        "code": "508"
    }, {
        "name": "圣文森特和格林纳丁斯",
        "code": "1784"
    }, {
        "name": "斯里兰卡",
        "code": "94"
    }, {
        "name": "斯洛伐克",
        "code": "421"
    }, {
        "name": "斯洛文尼亚",
        "code": "386"
    }, {
        "name": "斯威士兰",
        "code": "268"
    }, {
        "name": "苏丹",
        "code": "249"
    }, {
        "name": "所罗门群岛",
        "code": "677"
    }, {
        "name": "索马里",
        "code": "252"
    }, {
        "name": "泰国",
        "code": "66",
        "initial": "T"
    }, {
        "name": "塔吉克斯坦",
        "code": "992"
    }, {
        "name": "汤加",
        "code": "676"
    }, {
        "name": "坦桑尼亚",
        "code": "255"
    }, {
        "name": "特克斯和凯科斯群岛",
        "code": "1649"
    }, {
        "name": "特立尼达和多巴哥",
        "code": "1868"
    }, {
        "name": "土耳其",
        "code": "90"
    }, {
        "name": "土库曼斯坦",
        "code": "993"
    }, {
        "name": "突尼斯",
        "code": "216"
    }, {
        "name": "托克劳",
        "code": "690"
    }, {
        "name": "图瓦卢",
        "code": "688"
    }, {
        "name": "瓦利斯和富图纳",
        "code": "681",
        "initial": "W"
    }, {
        "name": "瓦努阿图",
        "code": "678"
    }, {
        "name": "危地马拉",
        "code": "502"
    }, {
        "name": "委内瑞拉",
        "code": "58"
    }, {
        "name": "文莱",
        "code": "673"
    }, {
        "name": "乌干达",
        "code": "256"
    }, {
        "name": "乌克兰",
        "code": "380"
    }, {
        "name": "乌拉圭",
        "code": "598"
    }, {
        "name": "乌兹别克斯坦",
        "code": "998"
    }, {
        "name": "西班牙",
        "code": "34",
        "initial": "X"
    }, {
        "name": "希腊",
        "code": "30"
    }, {
        "name": "新加坡",
        "code": "65"
    }, {
        "name": "新喀里多尼亚",
        "code": "687"
    }, {
        "name": "新西兰",
        "code": "64"
    }, {
        "name": "匈牙利",
        "code": "36"
    }, {
        "name": "叙利亚",
        "code": "963"
    }, {
        "name": "牙买加",
        "code": "1876",
        "initial": "Y"
    }, {
        "name": "亚美尼亚",
        "code": "374"
    }, {
        "name": "也门",
        "code": "967"
    }, {
        "name": "意大利",
        "code": "39"
    }, {
        "name": "伊拉克",
        "code": "964"
    }, {
        "name": "伊朗",
        "code": "98"
    }, {
        "name": "印度",
        "code": "91"
    }, {
        "name": "印度尼西亚",
        "code": "62"
    }, {
        "name": "英国",
        "code": "44"
    }, {
        "name": "英属维京群岛",
        "code": "1284"
    }, {
        "name": "以色列",
        "code": "972"
    }, {
        "name": "约旦",
        "code": "962"
    }, {
        "name": "越南",
        "code": "84"
    }, {
        "name": "赞比亚",
        "code": "260",
        "initial": "Z"
    }, {
        "name": "乍得",
        "code": "235"
    }, {
        "name": "直布罗陀",
        "code": "350"
    }, {
        "name": "智利",
        "code": "56"
    }, {
        "name": "中非共和国",
        "code": "236"
    }, {
        "name": "中国澳门",
        "code": "853"
    }, {
        "name": "中国大陆",
        "code": "86"
    }, {
        "name": "中国台湾",
        "code": "886"
    }, {
        "name": "中国香港",
        "code": "852"
    }]
View Code

js  初版

分割 各国名称 随笔 第3张
    function getStr(data) {
      var str = '';
      var initial='A';
      var initialTemp;
      for (var i = 0, j = data.length; i < j; i++) {
        var initialTemp = data[i].initial;
        if (initialTemp) {
          if (initial == initialTemp) {
            str += '<div class="unit">' +
              '<div>' + initialTemp + '</div>' +
              '<ul><li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
          } else {
            str += '</ul></div>';
            str += '<div class="unit">' +
              '<div>' + initialTemp + '</div>' +
              '<ul><li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
          };
          initial = initialTemp;
        } else {
          str += '<li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
        }
      }

      return str;
    }
View Code

js  优化版

分割 各国名称 随笔 第5张
   function getStr(data) {
      var str = '';
      var initial = 'A';
      var initialTemp;
      for (var i = 0, j = data.length; i < j; i++) {
        initialTemp = data[i].initial;
        if (initialTemp) {
          if (initial !== initialTemp) {
            str += '</ul></div>';
          }
          str += '<div class="unit">' +
            '<div>' + initialTemp + '</div>' +
            '<ul>';
          initial = initialTemp;
        }
        str += '<li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
      }

      return str;
    }
View Code

 

2. 英文 ( 编辑源 json 文件的话实现方式同上 )

2.1 非编辑源 json 实现方式 一

json 

分割 各国名称 随笔 第7张
{
    "hot":[
        {
            "name": "China",
            "code": "86"
        }, {
            "name": "Hong Kong China",
            "code": "852"
        }, {
            "name": "Macau China",
            "code": "853"
        }, {
            "name": "Taiwan China",
            "code": "886"
        },{
            "name": "Canada",
            "code": "1"
        },{
            "name": "America",
            "code": "1"
        },{
            "name": "Kazakhstan",
            "code": "7"
        },{
            "name": "Russia",
            "code": "7"
        },{
            "name": "France",
            "code": "33"
        },{
            "name": "Italy",
            "code": "39"
        },{
            "name": "Britain",
            "code": "44"
        },{
            "name": "Germany",
            "code": "49"
        },{
            "name": "Malaysia",
            "code": "60"
        },{
            "name": "Australia",
            "code": "61"
        },{
            "name": "Indonesia",
            "code": "62"
        },{
            "name": "Philippines",
            "code": "63"
        },{
            "name": "Pitcairn Islands",
            "code": "64"
        },{
            "name": "New Zealand",
            "code": "64"
        },{
            "name": "Singapore",
            "code": "65"
        },{
            "name": "Thailand",
            "code": "66"
        },{
            "name": "Japan",
            "code": "81"
        },{
            "name": "South Korea",
            "code": "82"
        },{
            "name": "Vietnam",
            "code": "84"
        },{
            "name": "India",
            "code": "91"
        },{
            "name": "Cambodia",
            "code": "855"
        }
    ],
    "all":[{
    "name": "Afghanistan",
    "code": "93"
}, {
    "name": "Albania",
    "code": "355"
}, {
    "name": "Algeria",
    "code": "213"
}, {
    "name": "American Samoa",
    "code": "1684"
}, {
    "name": "Andorra",
    "code": "376"
}, {
    "name": "Angola",
    "code": "244"
}, {
    "name": "Anguilla",
    "code": "1264"
}, {
    "name": "Antarctica",
    "code": "672"
}, {
    "name": "Antigua and Barbuda",
    "code": "1268"
}, {
    "name": "Argentina",
    "code": "54"
}, {
    "name": "Armenia",
    "code": "374"
}, {
    "name": "Aruba",
    "code": "297"
}, {
    "name": "Australia",
    "code": "61"
}, {
    "name": "Austria",
    "code": "43"
}, {
    "name": "Azerbaijan",
    "code": "994"
}, {
    "name": "Bahamas",
    "code": "1242"
}, {
    "name": "Bahrain",
    "code": "973"
}, {
    "name": "Bangladesh",
    "code": "880"
}, {
    "name": "Barbados",
    "code": "1246"
}, {
    "name": "Belarus",
    "code": "375"
}, {
    "name": "Belgium",
    "code": "32"
}, {
    "name": "Belize",
    "code": "501"
}, {
    "name": "Benin",
    "code": "229"
}, {
    "name": "Bermuda",
    "code": "1441"
}, {
    "name": "Bhutan",
    "code": "975"
}, {
    "name": "Bolivia",
    "code": "591"
}, {
    "name": "Bosnia and Herzegovina",
    "code": "387"
}, {
    "name": "Botswana",
    "code": "267"
}, {
    "name": "Brazil",
    "code": "55"
}, {
    "name": "British Virgin Islands",
    "code": "1284"
}, {
    "name": "Brunei",
    "code": "673"
}, {
    "name": "Bulgaria",
    "code": "359"
}, {
    "name": "Burkina Faso",
    "code": "226"
}, {
    "name": "Burundi",
    "code": "257"
}, {
    "name": "Côte d'Ivoire",
    "code": "225"
}, {
    "name": "Cambodia",
    "code": "855"
}, {
    "name": "Cameroon",
    "code": "237"
}, {
    "name": "Canada",
    "code": "1"
}, {
    "name": "Cape Verde",
    "code": "238"
}, {
    "name": "Cayman Islands",
    "code": "1345"
}, {
    "name": "Central African Republic",
    "code": "236"
}, {
    "name": "Chad",
    "code": "235"
}, {
    "name": "Chile",
    "code": "56"
}, {
    "name": "China",
    "code": "86"
}, {
    "name": "Christmas Island",
    "code": "61"
}, {
    "name": "Cocos [Keeling] Islands",
    "code": "61"
}, {
    "name": "Colombia",
    "code": "57"
}, {
    "name": "Comoros",
    "code": "269"
}, {
    "name": "Congo - Brazzaville",
    "code": "242"
}, {
    "name": "Congo - Kinshasa",
    "code": "243"
}, {
    "name": "Cook Islands",
    "code": "682"
}, {
    "name": "Costa Rica",
    "code": "506"
}, {
    "name": "Croatia",
    "code": "385"
}, {
    "name": "Cuba",
    "code": "53"
}, {
    "name": "Cyprus",
    "code": "357"
}, {
    "name": "Czech Republic",
    "code": "420"
}, {
    "name": "Denmark",
    "code": "45"
}, {
    "name": "Djibouti",
    "code": "253"
}, {
    "name": "Dominica",
    "code": "1767"
}, {
    "name": "Dominican Republic",
    "code": "1809"
}, {
    "name": "Ecuador",
    "code": "593"
}, {
    "name": "Egypt",
    "code": "20"
}, {
    "name": "El Salvador",
    "code": "503"
}, {
    "name": "Equatorial Guinea",
    "code": "240"
}, {
    "name": "Eritrea",
    "code": "291"
}, {
    "name": "Estonia",
    "code": "372"
}, {
    "name": "Ethiopia",
    "code": "251"
}, {
    "name": "Falkland Islands",
    "code": "500"
}, {
    "name": "Faroe Islands",
    "code": "298"
}, {
    "name": "Fiji",
    "code": "679"
}, {
    "name": "Finland",
    "code": "358"
}, {
    "name": "France",
    "code": "33"
}, {
    "name": "French Polynesia",
    "code": "689"
}, {
    "name": "Gabon",
    "code": "241"
}, {
    "name": "Gambia",
    "code": "220"
}, {
    "name": "Georgia",
    "code": "995"
}, {
    "name": "Germany",
    "code": "49"
}, {
    "name": "Ghana",
    "code": "233"
}, {
    "name": "Gibraltar",
    "code": "350"
}, {
    "name": "Greece",
    "code": "30"
}, {
    "name": "Greenland",
    "code": "299"
}, {
    "name": "Grenada",
    "code": "1473"
}, {
    "name": "Guam",
    "code": "1671"
}, {
    "name": "Guatemala",
    "code": "502"
}, {
    "name": "Guinea",
    "code": "224"
}, {
    "name": "Guinea-Bissau",
    "code": "245"
}, {
    "name": "Guyana",
    "code": "592"
}, {
    "name": "Haiti",
    "code": "509"
}, {
    "name": "Honduras",
    "code": "504"
}, {
    "name": "Hong Kong China",
    "code": "852"
}, {
    "name": "Hungary",
    "code": "36"
}, {
    "name": "Iceland",
    "code": "354"
}, {
    "name": "India",
    "code": "91"
}, {
    "name": "Indonesia",
    "code": "62"
}, {
    "name": "Iran",
    "code": "98"
}, {
    "name": "Iraq",
    "code": "964"
}, {
    "name": "Ireland",
    "code": "353"
}, {
    "name": "Isle of Man",
    "code": "44"
}, {
    "name": "Israel",
    "code": "972"
}, {
    "name": "Italy",
    "code": "39"
}, {
    "name": "Jamaica",
    "code": "1876"
}, {
    "name": "Japan",
    "code": "81"
}, {
    "name": "Jordan",
    "code": "962"
}, {
    "name": "Kazakhstan",
    "code": "7"
}, {
    "name": "Kenya",
    "code": "254"
}, {
    "name": "Kiribati",
    "code": "686"
}, {
    "name": "Kuwait",
    "code": "965"
}, {
    "name": "Kyrgyzstan",
    "code": "996"
}, {
    "name": "Laos",
    "code": "856"
}, {
    "name": "Latvia",
    "code": "371"
}, {
    "name": "Lebanon",
    "code": "961"
}, {
    "name": "Lesotho",
    "code": "266"
}, {
    "name": "Liberia",
    "code": "231"
}, {
    "name": "Libya",
    "code": "218"
}, {
    "name": "Liechtenstein",
    "code": "423"
}, {
    "name": "Lithuania",
    "code": "370"
}, {
    "name": "Luxembourg",
    "code": "352"
}, {
    "name": "Macau China",
    "code": "853"
}, {
    "name": "Macedonia",
    "code": "389"
}, {
    "name": "Madagascar",
    "code": "261"
}, {
    "name": "Malawi",
    "code": "265"
}, {
    "name": "Malaysia",
    "code": "60"
}, {
    "name": "Maldives",
    "code": "960"
}, {
    "name": "Mali",
    "code": "223"
}, {
    "name": "Malta",
    "code": "356"
}, {
    "name": "Marshall Islands",
    "code": "692"
}, {
    "name": "Mauritania",
    "code": "222"
}, {
    "name": "Mauritius",
    "code": "230"
}, {
    "name": "Mayotte",
    "code": "262"
}, {
    "name": "Mexico",
    "code": "52"
}, {
    "name": "Micronesia",
    "code": "691"
}, {
    "name": "Moldova",
    "code": "373"
}, {
    "name": "Monaco",
    "code": "377"
}, {
    "name": "Mongolia",
    "code": "976"
}, {
    "name": "Montenegro",
    "code": "382"
}, {
    "name": "Montserrat",
    "code": "1664"
}, {
    "name": "Morocco",
    "code": "212"
}, {
    "name": "Mozambique",
    "code": "258"
}, {
    "name": "Myanmar [Burma]",
    "code": "95"
}, {
    "name": "Namibia",
    "code": "264"
}, {
    "name": "Nauru",
    "code": "674"
}, {
    "name": "Nepal",
    "code": "977"
}, {
    "name": "Netherlands",
    "code": "31"
}, {
    "name": "Netherlands Antilles",
    "code": "599"
}, {
    "name": "New Caledonia",
    "code": "687"
}, {
    "name": "New Zealand",
    "code": "64"
}, {
    "name": "Nicaragua",
    "code": "505"
}, {
    "name": "Niger",
    "code": "227"
}, {
    "name": "Nigeria",
    "code": "234"
}, {
    "name": "Niue",
    "code": "683"
}, {
    "name": "North Korea",
    "code": "850"
}, {
    "name": "Northern Mariana Islands",
    "code": "1670"
}, {
    "name": "Norway",
    "code": "47"
}, {
    "name": "Oman",
    "code": "968"
}, {
    "name": "Pakistan",
    "code": "92"
}, {
    "name": "Palau",
    "code": "680"
}, {
    "name": "Panama",
    "code": "507"
}, {
    "name": "Papua New Guinea",
    "code": "675"
}, {
    "name": "Paraguay",
    "code": "595"
}, {
    "name": "Peru",
    "code": "51"
}, {
    "name": "Philippines",
    "code": "63"
}, {
    "name": "Pitcairn Islands",
    "code": "870"
}, {
    "name": "Poland",
    "code": "48"
}, {
    "name": "Portugal",
    "code": "351"
}, {
    "name": "Puerto Rico",
    "code": "1"
}, {
    "name": "Qatar",
    "code": "974"
}, {
    "name": "Romania",
    "code": "40"
}, {
    "name": "Russia",
    "code": "7"
}, {
    "name": "Rwanda",
    "code": "250"
}, {
    "name": "S?o Tomé and Príncipe",
    "code": "239"
}, {
    "name": "Saint Barthélemy",
    "code": "590"
}, {
    "name": "Saint Helena",
    "code": "290"
}, {
    "name": "Saint Kitts and Nevis",
    "code": "1869"
}, {
    "name": "Saint Lucia",
    "code": "1758"
}, {
    "name": "Saint Martin",
    "code": "1599"
}, {
    "name": "Saint Pierre and Miquelon",
    "code": "508"
}, {
    "name": "Saint Vincent and the Grenadines",
    "code": "1784"
}, {
    "name": "Samoa",
    "code": "685"
}, {
    "name": "San Marino",
    "code": "378"
}, {
    "name": "Saudi Arabia",
    "code": "966"
}, {
    "name": "Senegal",
    "code": "221"
}, {
    "name": "Serbia",
    "code": "381"
}, {
    "name": "Seychelles",
    "code": "248"
}, {
    "name": "Sierra Leone",
    "code": "232"
}, {
    "name": "Singapore",
    "code": "65"
}, {
    "name": "Slovakia",
    "code": "421"
}, {
    "name": "Slovenia",
    "code": "386"
}, {
    "name": "Solomon Islands",
    "code": "677"
}, {
    "name": "Somalia",
    "code": "252"
}, {
    "name": "South Africa",
    "code": "27"
}, {
    "name": "South Korea",
    "code": "82"
}, {
    "name": "Spain",
    "code": "34"
}, {
    "name": "Sri Lanka",
    "code": "94"
}, {
    "name": "Sudan",
    "code": "249"
}, {
    "name": "Swaziland",
    "code": "268"
}, {
    "name": "Sweden",
    "code": "46"
}, {
    "name": "Switzerland",
    "code": "41"
}, {
    "name": "Syria",
    "code": "963"
}, {
    "name": "Taiwan China",
    "code": "886"
}, {
    "name": "Tajikistan",
    "code": "992"
}, {
    "name": "Tanzania",
    "code": "255"
}, {
    "name": "Thailand",
    "code": "66"
}, {
    "name": "Timor-Leste",
    "code": "670"
}, {
    "name": "Togo",
    "code": "228"
}, {
    "name": "Tokelau",
    "code": "690"
}, {
    "name": "Tonga",
    "code": "676"
}, {
    "name": "Trinidad and Tobago",
    "code": "1868"
}, {
    "name": "Tunisia",
    "code": "216"
}, {
    "name": "Turkey",
    "code": "90"
}, {
    "name": "Turkmenistan",
    "code": "993"
}, {
    "name": "Turks and Caicos Islands",
    "code": "1649"
}, {
    "name": "Tuvalu",
    "code": "688"
}, {
    "name": "U.S. Virgin Islands",
    "code": "1340"
}, {
    "name": "Uganda",
    "code": "256"
}, {
    "name": "Ukraine",
    "code": "380"
}, {
    "name": "United Arab Emirates",
    "code": "971"
}, {
    "name": "United Kingdom",
    "code": "44"
}, {
    "name": "United States",
    "code": "1"
}, {
    "name": "Uruguay",
    "code": "598"
}, {
    "name": "Uzbekistan",
    "code": "998"
}, {
    "name": "Vanuatu",
    "code": "678"
}, {
    "name": "Vatican City",
    "code": "39"
}, {
    "name": "Venezuela",
    "code": "58"
}, {
    "name": "Vietnam",
    "code": "84"
}, {
    "name": "Wallis and Futuna",
    "code": "681"
}, {
    "name": "Yemen",
    "code": "967"
}, {
    "name": "Zambia",
    "code": "260"
}]
}
View Code

js  初版

分割 各国名称 随笔 第9张
    function getStr(data) {
      var str = '';
      var initial = 'A';
      var flag = true;
      var initialTemp;
      for (var i = 0, j = data.length; i < j; i++) {
        initialTemp = data[i].name.charAt(0);
        if (initial == initialTemp) {
          if (flag) {
            str += '<div class="unit">' +
              '<div>' + initialTemp + '</div>' +
              '<ul><li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
            flag = false;
          } else {
            str += '<li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
          }
        } else {
          str += '</ul></div>';
          initial = initialTemp;
          flag = true;
          if (flag) {
            str += '<div class="unit">' +
              '<div>' + initialTemp + '</div>' +
              '<ul><li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
            flag = false;
          } else {
            str += '<li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
          }          
        };
      }
      return str;
    }
View Code

js  优化版 

分割 各国名称 随笔 第11张
    function getStr(data) {
      var str = '';
      var initial = 'A';
      var flag = true;
      var initialTemp;
      for (var i = 0, j = data.length; i < j; i++) {
        initialTemp = data[i].name.charAt(0);
        if (initial !== initialTemp) {
          str += '</ul></div>';
          initial = initialTemp;
          flag = true;
        };
        if (flag) {
          str += '<div class="unit">' +
            '<div>' + initialTemp + '</div>' +
            '<ul>';
          flag = false;
        }
        str += '<li><span>' + data[i].name + '</span><span>' + data[i].code + '</span></li>';
      }
      return str;
    }
View Code

 

2.2 非编辑源 json 实现方式  二

分割 各国名称 随笔 第13张
    var letterArr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    var letterObj = {};
    var charRef;
    var char;
    for (var i = 0, j = letterArr.length; i < j; i++) {
      charRef=letterArr[i];
      letterObj[charRef] = [];
      for (var m = 0, n = data.length; m < n; m++) {
        char = data[m].name.charAt(0);
        if (char == charRef) {
          letterObj[charRef].push(data[m]);
        }
      }
    }
View Code

思路就是两层循环获取到指定字母组,然后再进行拼串处理,不过效率不如之前的通常做法,可是具有面向对象和自定义配置的意识。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄