首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对三个变量的数组进行排序

对三个变量的数组进行排序
EN

Stack Overflow用户
提问于 2017-11-06 19:44:47
回答 1查看 189关注 0票数 0

我有一组扑克牌。我想从价值、颜色和可玩性等方面对它们进行分类。

  • 我有4种颜色,1,2,3,4。
  • 我有3个可玩的选项;1,2,3。
  • 我有5个值;1,2,3,4,5。

我能够根据颜色和价值对数组进行排序。因此,如果颜色相同,则按值对数组进行排序。

示例颜色-值对:

代码语言:javascript
复制
1-2, 1-4, 1-5, 2-2, 3-1, 3-2, 3-5

密码是,

代码语言:javascript
复制
playerCards.sort {
       if $0.colorSorter == $1.colorSorter {
            return $0.value < $1.value
       }
        return $0.colorSorter < $1.colorSorter
    }

如何添加第三个参数来对可玩性进行排序?

我想要看到的东西(可玩性-颜色-值三胞胎):

代码语言:javascript
复制
1-1-2, 1-1-4, 1-2-2, 1-3-1, 2-1-5, 2-3-1, 2-3-2, 3-3-5

1:按可玩性排序2:按颜色排序3:按值排序。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-06 19:52:23

假设这是您的结构

代码语言:javascript
复制
struct Card {
    let color:Int
    let value:Int
    let playability:Int
}

这是你的数组

代码语言:javascript
复制
let cards:[Card] = ...

您可以根据cards进行排序

  1. playability
  2. color
  3. value

写作

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47144574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档