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

Swift:基于模型数组日期值创建嵌套分组数组

Swift 按日期分组并排序数组元素

核心实现:用Dictionary(grouping:by:)自动分组

Swift标准库提供了现成的分组API,完全适配任意数据规模,无需手动编写复杂循环:

// 1. 按date字段分组,生成 [String: [Model]] 类型的字典
let groupedDictionary = Dictionary(grouping: data) { $0.date }

// 2. 提取分组结果并按日期降序排序(匹配目标输出的顺序)
// 先将日期字符串转为Date类型,确保排序逻辑准确
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"

let groupedData = groupedDictionary.values.sorted { firstGroup, secondGroup in
    guard let firstDate = dateFormatter.date(from: firstGroup.first?.date ?? ""),
          let secondDate = dateFormatter.date(from: secondGroup.first?.date ?? "") else {
        return false
    }
    return firstDate > secondDate
}

简化排序方案(日期格式固定时)

如果你的日期格式始终是dd.MM.yyyy且无无效值,可直接对日期字符串做字典序排序,省去Date转换步骤:

let groupedData = groupedDictionary.values.sorted {
    $0.first?.date ?? "" > $1.first?.date ?? ""
}

说明

  • Dictionary(grouping:by:)会自动遍历数组,将元素按指定key(此处为date)归类,无论数据量大小都能高效处理。
  • 由于字典本身是无序集合,所以需要额外对分组后的数组按日期排序,确保输出顺序和目标一致。

内容的提问来源于stack exchange,提问作者Kerem Cesme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:25:16