【发布时间】:2019-10-22 09:29:21
【问题描述】:
假设我有以下设置。
我正在尝试按字母顺序和category 对[first, second, third] 进行排序。
我首先想要 featured 项目,然后是按 title 排序的所有其他项目。
我试过let output = [first, second, third].sort { $0.category == $1.category ? $0.category && $1.category == .featured : $0.title < $1.title }
但这完全是一场灾难。
最终结果应该是排序后的标题为foobarbaz
enum Category {
case featured, standard
}
struct Article {
var title: String
var category: Category
}
let first = Article(title: "bar", category: .standard)
let second = Article(title: "foo", category: .featured)
let third = Article(title: "boo", category: .standard)
let output = [first, second, third]
【问题讨论】:
-
将它们的特征和其余部分分开,而不是对这两个数组进行排序
-
它们将代表一个提要,我应该在排序后合并吗?他们会失去订单吗?
-
数组不会丢失顺序,只需将它们与
+连接起来