You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言如何按点击量排序含日期键的结构体映射?

问题:按点击量排序日期键的统计数据

我正在开发一个存储分析数据的项目,目前整体运行正常,但遇到一个问题:需要对TotalsPerDay["2022-02-01"]这类内容按点击量(Clicks)进行排序。

我选择使用map[string]struct{}的原因是需要将日期作为键,值为结构体,以便在程序其他位置遍历所有记录并汇总单日数据。现有数据模型代码如下:

dataModel := types.DataModel{
   Totals: types.DataModelTotals{
      Clicks:           0,
      Impressions:      0,
      Position:         0,
      ClickThroughRate: 0,
      TotalsPerDay:     map[string]types.DataModelTotalsPerDay{},
   },
   Searches:     map[string]types.Searches{},
   Pages:        map[string]types.Pages{},
   Countries:    map[string]types.Countries{},
   Devices:      map[string]types.Devices{},
   SearchFilter: map[string]types.SearchFilter{},
   Dates:        map[string]types.Dates{},
}

当前TotalsPerDay的示例结构:

TotalsPerDay {
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 17 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 9 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 82 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 52 }
}

期望排序后的结构:

TotalsPerDay {
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 82 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 52 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 17 },
  DataModelTotalsPerDay["2022-02-01"]{ Clicks: 9 }
}

将日期设为字符串键是为了方便前端遍历日期并展示数据。我尝试过多种排序函数但未得到预期结果,还听说map的元素无法排序,若该说法属实,该如何处理数据以便前端遍历日期并轻松获取点击量等统计数据?

以下是TotalsPerDay的JSON版本:

{"2022-08-27 00:00:00 +0000 UTC":{"clicks":6,"impressions":7558,"position":280683.4432563555,"clickThroughRate":280669.4432563555,"totalRrows":5436},"2022-08-28 00:00:00 +0000 UTC":{"clicks":1,"impressions":8061,"position":289043.214145452,"clickThroughRate":288990.8808121187,"totalRrows":5665},"2022-08-29 00:00:00 +0000 UTC":{"clicks":8,"impressions":8283,"position":303046.8245871944,"clickThroughRate":302952.8245871944,"totalRrows":5905},"2022-08-30 00:00:00 +0000 UTC":{"clicks":4,"impressions":8447,"position":300142.1673121948,"clickThroughRate":300071.1673121948,"totalRrows":5904},"2022-08-31 00:00:00 +0000 UTC": {"clicks":7,"impressions":8114,"position":285296.87973927736,"clickThroughRate":285158.87973927736,"totalRrows":5648},"2022-09-01 00:00:00 +0000 UTC":{"clicks":6,"impressions":8306,"position":297513.4591694122,"clickThroughRate":297337.4591694122,"totalRrows":5932},"2022-09-02 00:00:00 +0000 UTC":{"clicks":4,"impressions":7938,"position":284144.3877642734,"clickThroughRate":284102.3877642734,"totalRrows":5590},"2022-09-03 00:00:00 +0000 UTC":{"clicks":0,"impressions":7024,"position":266604.6929695027,"clickThroughRate":266536.6929695027,"totalRrows":5205}}

内容的提问来源于stack exchange,提问作者Angelo van Cleef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:40:28