根据年份和日期对数组进行排序
Sorting array based on Year and Day
我有这个函数可以根据日期将数组排序为二维数组,但我只想根据日期和年份排序,而不是整个日期(包括小时等)。
func sortHomeworks() {
/*
Sorts homeworks by date
*/
// First it groups them into a dictionary
let groupedHomeworks = Dictionary(grouping: recivedHomeworks) { (element) -> Date in
return element.date!
}
// Then it sorts the keys in this new dictionary in reverse order
let sortedKeys = groupedHomeworks.keys.sorted{[=10=] > } //ReverseSorting
// add every [Homework] into --> homeworks [[Homework]]
sortedKeys.forEach { (key) in
let values = groupedHomeworks[key]
homeworks.append(values ?? [])
}
您对项目进行分组的代码是:
let groupedHomeworks = Dictionary(grouping: recivedHomeworks)
{ (element) -> Date in return element.date! }
要仅按年和日分组,您需要更改 element.date!
以生成仅包含这两个值的键,而不是返回整个日期。由于此表达式 returns 是 Date
值,您可以使用 DateFormatter
(documentation) 来执行此操作,您可以将日期格式设置为 YY-MM-DD 或类似格式。
我有这个函数可以根据日期将数组排序为二维数组,但我只想根据日期和年份排序,而不是整个日期(包括小时等)。
func sortHomeworks() {
/*
Sorts homeworks by date
*/
// First it groups them into a dictionary
let groupedHomeworks = Dictionary(grouping: recivedHomeworks) { (element) -> Date in
return element.date!
}
// Then it sorts the keys in this new dictionary in reverse order
let sortedKeys = groupedHomeworks.keys.sorted{[=10=] > } //ReverseSorting
// add every [Homework] into --> homeworks [[Homework]]
sortedKeys.forEach { (key) in
let values = groupedHomeworks[key]
homeworks.append(values ?? [])
}
您对项目进行分组的代码是:
let groupedHomeworks = Dictionary(grouping: recivedHomeworks)
{ (element) -> Date in return element.date! }
要仅按年和日分组,您需要更改 element.date!
以生成仅包含这两个值的键,而不是返回整个日期。由于此表达式 returns 是 Date
值,您可以使用 DateFormatter
(documentation) 来执行此操作,您可以将日期格式设置为 YY-MM-DD 或类似格式。