派大星爱吃小鱼干

对象数字按字母表排序

2019-09-30  本文已影响0人  程序猿阿峰
类似如下的对象数组按字母表排序
let list = [
  {id: "2", bankName: "吉林永衡官银钱局", initial: "J"}
  {id: "3", bankName: "澳门大西洋银行", initial: "A"}
  {id: "4", bankName: "中央银行", initial: "Z"}
  {id: "5", bankName: "中国军用代金券", initial: "Z"}
  {id: "6", bankName: "中国国库券", initial: "Z"}
  {id: "7", bankName: "大清银行", initial: "D"}
  {id: "8", bankName: "东北银行", initial: "D"}
  {id: "9", bankName: "奉天兴业银行", initial: "F"}
  {id: "10", bankName: "财政部", initial: "C"}
  {id: "11", bankName: "边业银行", initial: "B"}
  {id: "12", bankName: "香港中国银行", initial: "X"}
  {id: "13", bankName: "浙东银行", initial: "Z"}
  {id: "14", bankName: "云南富滇银行", initial: "Y"}
  {id: "15", bankName: "商办青岛地方银行", initial: "S"}
  {id: "16", bankName: "陕西富秦银行", initial: "S"}
  {id: "17", bankName: "农民银行", initial: "N"}
  {id: "18", bankName: "美商花旗银行", initial: "M"}
  {id: "19", bankName: "淮南银行", initial: "H"}
  {id: "20", bankName: "华威银行", initial: "H"}
  {id: "21", bankName: "华比银行", initial: "H"}
  {id: "22", bankName: "新疆财政厅库官票", initial: "X"}
  {id: "23", bankName: "中州农民银行", initial: "Z"}
  {id: "24", bankName: "贵州银行", initial: "G"}
  {id: "25", bankName: "浙江兴业银行", initial: "Z"}
  {id: "26", bankName: "广州市市立银行", initial: "G"}
  {id: "27", bankName: "广西省银行", initial: "G"}
  {id: "28", bankName: "广东省金库券", initial: "G"}
  {id: "29", bankName: "大江银行", initial: "D"}
  {id: "30", bankName: "热河兴业银行", initial: "R"}
  {id: "31", bankName: "呼伦贝尔官商钱局", initial: "H"}
  {id: "32", bankName: "西康省银行", initial: "X"}
  {id: "33", bankName: "黑龙江官银号", initial: "H"}
  {id: "34", bankName: "奉天官银号", initial: "F"}
  {id: "35", bankName: "贵州省银行", initial: "G"}
  {id: "36", bankName: "察哈尔兴业银行", initial: "C"}
  {id: "37", bankName: "山西省银行", initial: "S"}
  {id: "38", bankName: "陕北地方实业银行", initial: "S"}
  {id: "39", bankName: "西北银行", initial: "X"}
  {id: "40", bankName: "陕甘宁边区银行", initial: "S"}
  {id: "41", bankName: "河南省银行", initial: "H"}
  {id: "42", bankName: "浙江地方银行", initial: "Z"}
  {id: "43", bankName: "财政部平市官钱局", initial: "C"}
  {id: "44", bankName: "察南银行", initial: "C"}
  {id: "45", bankName: "冀东银行", initial: "J"}
  {id: "46", bankName: "江南商业货币券", initial: "J"}
  {id: "47", bankName: "江苏平市官钱局", initial: "J"}
  {id: "48", bankName: "江苏聚兴甡印钱局", initial: "J"}
  {id: "49", bankName: "淮海实业银行", initial: "H"}
  {id: "50", bankName: "印度新金山中国汇理银行", initial: "Y"}
  {id: "51", bankName: "青海实业银行", initial: "Q"}
  {id: "52", bankName: "商办陇东银号", initial: "S"}
  {id: "53", bankName: "甘肃银行", initial: "G"}
  {id: "54", bankName: "甘肃农民银行", initial: "G"}
  {id: "55", bankName: "丰业银行", initial: "F"}
  {id: "56", bankName: "豫章山区绥靖银行", initial: "Y"}
  {id: "57", bankName: "同益银行", initial: "T"}
  {id: "58", bankName: "南昌市立银行", initial: "N"}
  {id: "59", bankName: "南昌振商银行", initial: "N"}
  {id: "60", bankName: "江西官银钱总号", initial: "J"}
  {id: "61", bankName: "华泰银行", initial: "H"}
  {id: "62", bankName: "威海农业储蓄银行", initial: "W"}
  {id: "63", bankName: "山东工商银行", initial: "S"}
  {id: "64", bankName: "山东省库券", initial: "S"}
  {id: "65", bankName: "山东当业银行", initial: "S"}
  {id: "66", bankName: "湖南通商银行", initial: "H"}
  {id: "67", bankName: "河南农工银行", initial: "H"}
  {id: "68", bankName: "河南财政部平市官钱局", initial: "H"}
  {id: "69", bankName: "直隶省官钱局", initial: "Z"}
  {id: "70", bankName: "直隶财政部平市官钱局", initial: "Z"}
  {id: "71", bankName: "平津卫戍总司令部", initial: "P"}
  {id: "72", bankName: "京兆财政部平市官钱局", initial: "J"}
  {id: "73", bankName: "京兆银钱局", initial: "J"}
  {id: "74", bankName: "浙江银行", initial: "Z"}
  {id: "75", bankName: "江苏徐州平市官钱局", initial: "J"}
   {id: "76", bankName: "澳门中国银行", initial: "A"}
  {id: "77", bankName: "香港政府", initial: "X"}
  {id: "78", bankName: "香港汇丰银行", initial: "X"}
  {id: "79", bankName: "香港有利银行", initial: "X"}
  {id: "80", bankName: "东藩汇理银行", initial: "D"}
  {id: "81", bankName: "香港中华汇理银行", initial: "X"}
  {id: "82", bankName: "香港渣打银行", initial: "X"}
  {id: "83", bankName: "台湾银行", initial: "T"}
  {id: "84", bankName: "中国银行外汇兑换券", initial: "Z"}
  {id: "85", bankName: "苏联红军司令部", initial: "S"}
  {id: "86", bankName: "日本帝国政府", initial: "R"}
  {id: "87", bankName: "四川地方银行", initial: "S"}
  {id: "88", bankName: "山东省军用票", initial: "S"}
  {id: "89", bankName: "农工商信托有限公司", initial: "N"}
  {id: "90", bankName: "国民军军票", initial: "G"}
  {id: "91", bankName: "广西军用票", initial: "G"}
  {id: "92", bankName: "赣省民国银行", initial: "G"}
  {id: "93", bankName: "中华民国粤省军政府", initial: "Z"}
  {id: "94", bankName: "中华民国军用钞票", initial: "Z"}
  {id: "95", bankName: "直鲁省军用券", initial: "Z"}
  {id: "96", bankName: "镇威军兵站库券", initial: "Z"}
  {id: "97", bankName: "光华商店", initial: "G"}
  {id: "98", bankName: "滇黔桂边区贸易局", initial: "D"}
  {id: "99", bankName: "东蒙银行", initial: "D"}
  {id: "100", bankName: "上党银号", initial: "S"}
]

定义一个排序的方法

        // 序列化排序
        normalizeBank: function(list) {
            var map = {
                hot: {
                    title: '中国人民银行',
                    items: []
                }
            }
            for(var i = 0; i < list.length; i++) {
                if (list[i].bankName == '中国人民银行') {
                    map.hot.items.push({
                        id: list[i].id,
                        bankName: list[i].bankName
                    })
                }
                var key = list[i].initial
                if (!map[key]) {
                    map[key] = {
                        title: key,
                        items: []
                    }
                }
                map[key].items.push({
                    id: list[i].id,
                    bankName: list[i].bankName
                })
            }
            var ret = []
            var hot = []

            for (var key in map) {
                var val = map[key]
                if (val.title.match(/[a-zA-Z]/)) {
                    ret.push(val)
                } else if (val.title === '中国人民银行') {
                    hot.push(val)
                }
            }
            ret.sort(function(a, b) {
                return a.title.charCodeAt(0) - b.title.charCodeAt(0)
            })

            return hot.concat(ret)
        }

3. 调用方法实现排序

效果图
上一篇 下一篇

猜你喜欢

热点阅读