• Golang将map数组按照指定字段排序


    //获取用户获取的优惠券列表
    func GetCouponList(c *gin.Context) {
        defer func() {
            if r := recover(); r != nil {
                util.LogStack(r.(error))
                c.JSON(RequestSuccess, gin.H{"status": SysError, "data": r, "err_msg": "服务器内部错误"})
                return
            }
        }()
    
        var (
            loginToken         string
            luck_draw_res   []int
            getErr            error
            user_id         int
            params             map[string]string
        )
    
        coupon_list := make([]map[string]interface{}, 0)
        if luck_draw_res != nil {
            for _, val := range luck_draw_res {
                item := coupon_map[val]
                item["id"] = strconv.Itoa(val)
                title := item["title"]
                item["quota"] = substr(title)
                coupon_list = append(coupon_list, item)
            }
                   fmt.Println(coupon_list) //
    //[map[desc:15w元以上可用 id:53 quota:5888 title:5888元] map[desc:20w以上可用 id:52 quota:7888 title:7888元]]
            Sort("quota", coupon_list)  //排序,第一个参数是指定的key
        }
    
        c.JSON(http.StatusOK, gin.H{"status": StatusSuccess, "data": coupon_list, "msg": "Success"}); return
    }
    
    //截取字符串
    func substr(title interface{}) int {
        title_pro := title.(string)
    
        rs := []rune(title_pro)
        str := string(rs[0:len(rs)-1])
        val,_ := strconv.Atoi(str)
        return val  //这里截取后
    }
    
    
    
    
    //排序  start
    type MapsSort struct {
        Key     string
        MapList []map[string]interface{}
    }
    
    func (m *MapsSort) Len() int {
        return len(m.MapList)
    }
    
    func (m *MapsSort) Less(i, j int) bool {
        return m.MapList[i][m.Key].(int) > m.MapList[j][m.Key].(int)
    }
    
    func (m *MapsSort) Swap(i, j int) {
        m.MapList[i], m.MapList[j] = m.MapList[j], m.MapList[i]
    }
    
    func Sort(key string, maps []map[string]interface{}) []map[string]interface{} {
        mapsSort := MapsSort{}
        mapsSort.Key = key
        mapsSort.MapList = maps
        sort.Sort(&mapsSort)
    
        return mapsSort.MapList
    }
    
    //排序 end    
  • 相关阅读:
    VIJOS1476 旅行规划(树形Dp + DFS暴力乱搞)
    神奇的图片
    How to locate elements/ Object locators for Android devices
    ZT: How to install appium with node.js
    How to get the appPackage and appActivity
    How to enable auto-complete for python in powershell
    Node.js
    Steps to develop an iterative algorithm
    Iterative Algorithm
    FSM
  • 原文地址:https://www.cnblogs.com/wt645631686/p/13803768.html
Copyright © 2020-2023  润新知