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

问题描述

我正在尝试在 Swift 中按日期对数组进行排序,但我遇到了这三个错误:

那是数组声明:

let array = [[5.5, 1, 2020-11-05 23:00:00 +0000], [8.0, 2, 2020-11-10 23:00:00 +0000], [5.5, 1, 2020-10-27 23:00:00 +0000]]

这就是我编写的用于对数组进行排序的代码:

let sortedArray = array.sorted(by: { (($0[2]).compare($1[2]))! == .orderedAscending })
array = sortedArray

我该如何解决?提前致谢

标签: arraysswiftsorting

解决方案


您需要将要排序的元素转换为日期。以下转换将每个子数组的最后一个元素转换为 Date ,如果转换失败,子数组将排在最后

let sorted = array.sorted(by: { ($0.last as? Date ?? Date.distantFuture) < ($1.last as? Date ?? Date.distantPast)})

推荐阅读