【发布时间】:2020-08-10 11:58:22
【问题描述】:
按以下格式对包含月份和年份的数组进行排序的最佳方法是:
let dateX2 = Date(); let formatter2 = DateFormatter()
formatter2.dateFormat = "MMMM,,yyyy"
let dateZ = formatter2.string(from: dateX2)
包含上述格式日期的数组的顺序不正确:
let array = ["July,,2019", "January,,2020", "February,,2019", "March,,2020"]
排序后的预期结果:
let result = ["February,,2019", "July,,2019", "January,,2020", "March,,2020"]
【问题讨论】:
-
您有什么理由不使用原始 Date 对象并对其进行排序?
-
let sorted = array.sorted(by: { formatter.date(from: $0) ?? Date() < formatter.date(from: $1) ?? Date() })这可以解决问题。 -
仅按年和月对
Date数组进行排序的最佳方法是使用compare(_:to:toGranularity:) 或Calendar。
标签: arrays swift sorting filter array-filter