utils.go 613 B

123456789101112131415161718192021222324252627
  1. package utils
  2. import "sort"
  3. // SortMapByKey 对 map[string]interface{} 按照键进行排序
  4. func SortMapByKey(m map[string]interface{}) map[string]interface{} {
  5. // 创建一个 map[string]int,用于记录键的索引
  6. indexMap := make(map[string]int)
  7. for k := range m {
  8. indexMap[k] = len(indexMap)
  9. }
  10. // 对键进行排序
  11. keys := make([]string, 0, len(indexMap))
  12. for k := range indexMap {
  13. keys = append(keys, k)
  14. }
  15. sort.Strings(keys)
  16. // 创建排序后的 map[string]interface{}
  17. sortedMap := make(map[string]interface{})
  18. for _, k := range keys {
  19. sortedMap[k] = m[k]
  20. }
  21. return sortedMap
  22. }