我有一组扑克牌。我想从价值、颜色和可玩性等方面对它们进行分类。
我能够根据颜色和价值对数组进行排序。因此,如果颜色相同,则按值对数组进行排序。
示例颜色-值对:
1-2, 1-4, 1-5, 2-2, 3-1, 3-2, 3-5密码是,
playerCards.sort {
if $0.colorSorter == $1.colorSorter {
return $0.value < $1.value
}
return $0.colorSorter < $1.colorSorter
}如何添加第三个参数来对可玩性进行排序?
我想要看到的东西(可玩性-颜色-值三胞胎):
1-1-2, 1-1-4, 1-2-2, 1-3-1, 2-1-5, 2-3-1, 2-3-2, 3-3-51:按可玩性排序2:按颜色排序3:按值排序。
谢谢!
发布于 2017-11-06 19:52:23
假设这是您的结构
struct Card {
let color:Int
let value:Int
let playability:Int
}这是你的数组
let cards:[Card] = ...您可以根据cards进行排序
playabilitycolorvalue写作
let sorted = cards.sorted { (left, right) -> Bool in
guard left.playability == right.playability else { return left.playability < right.playability }
guard left.color == right.color else { return left.color < right.color }
return left.value < right.value
}https://stackoverflow.com/questions/47144574
复制相似问题