~~~
以下排序是无问题(只处理max的值正常)
但是如果我把 注释的id也加进去 , 那么请问如何来排序 id+max这种 呢,(主要计算max来排序,但是保留id的值)
func SortsStringMap(m []map[string]string) []map[string]string {
type KeyValuePair struct {
Key string
Value string
}
var kvPairs []KeyValuePair
for _, m := range m {
for k, v := range m {
kvPairs = append(kvPairs, KeyValuePair{Key: k, Value: v})
}
}
// 按Value排序
sort.Slice(kvPairs, func(i, j int) bool {
return kvPairs[i].Value < kvPairs[j].Value
})
sortedMapSlice := make([]map[string]string, 0)
for i, kv := range kvPairs {
if len(sortedMapSlice) == i {
sortedMapSlice = append(sortedMapSlice, map[string]string{})
}
sortedMapSlice[i][kv.Key] = kv.Value
}
return sortedMapSlice
}
func main(){
var arrs []map[string]string
arrs = append(arrs, map[string]string{
// "id": "1",
"max": "102",
})
arrs = append(arrs, map[string]string{
// "id": "2",
"max": "103",
})
arrs = append(arrs, map[string]string{
// "id": "3",
"max": "101",
})
fmt.Println(SortsStringMap(arrs))
}
~~~
有疑问加站长微信联系(非本文作者)