首页 > 解决方案 > 按日期键对字典数组进行排序

问题描述

我有一个[[Date:[Double]]]我想根据元素的键(即日期)按最接近最远的日期进行排序。

使用 Swift 执行此操作的最有效方法是什么?我在使用 NSSortDescriptor 之前已经这样做了,但这是在使用键/值对进行排序时。我之前没有按实际键本身排序。

示例数据:

[[2020-12-18 06:00:00 +0000: [475.4]], [2020-11-06 06:00:00 +0000: [427.475, 449.22]], [2020-11-06 00:09:33 +0000: [435.26, 441.605]]]

标签: iosswift

解决方案


正如马特建议的那样,让你的模型像这样:

struct DateStruct {
   let date: Date
   let values: [Double]
}

var dateStructsArray: [DateStruct] = []
//Populate your array in whatever way makes sense

然后对其进行排序就像使用单个调用一样简单sorted()

您的代码可能如下所示:

let sortedDateStructs = dateStructsArray.sorted { $0.date < $1.date }

推荐阅读