ios - 按键值对字典数组进行排序,如果键相等,则按其自身的字母顺序排序
问题描述
我在下面给出了一系列字典;
{
"result": [
{
"id": 9,
"name": "AKILLI",
"sequence": 1,
{
"id": 10,
"name": "DİĞER YEDEK ",
"sequence": 2,
},
{
"id": 61,
"name": "TELEFON",
"sequence": 0,
},
{
"id": 62,
"name": "TABLET",
"sequence": 0,
}
]
}
我想使用这个数组排序;
self.currArray = currArray.sorted { $0.sequence < $1.sequence }
结果是;
{
"result": [
{
"id": 61,
"name": "TELEFON",
"sequence": 0,
},
{
"id": 62,
"name": "TABLET",
"sequence": 0,
},
{
"id": 9,
"name": "AKILLI",
"sequence": 1,
{
"id": 10,
"name": "DİĞER YEDEK ",
"sequence": 2,
},
]
}
当“序列”相同时,我也想使用名称进行排序。我想得到;
{
"result": [
{
"id": 62,
"name": "TABLET",
"sequence": 0,
},
{
"id": 61,
"name": "TELEFON",
"sequence": 0,
},
{
"id": 9,
"name": "AKILLI",
"sequence": 1,
{
"id": 10,
"name": "DİĞER YEDEK ",
"sequence": 2,
},
]
}
如何一起使用这两个选项对数组进行排序?首先,如果键等于,我想使用“序列”键对数组进行排序,然后对“名称”键进行排序。
解决方案
使用元组有一种方便的语法,您可以就地排序
self.currArray.sort{ ($0.sequence, $0.name) < ($1.sequence, $1.name) }
推荐阅读
- reactjs - 如何选择要复制的文本而不触发reactjs中的点击事件
- javascript - 确保下一个函数仅在对话框关闭后运行
- javascript - “退格”和“清除”功能在 JavaScript 计算器中不起作用
- mysql - 如何映射 JPA 实体标识符以在 Oracle 和 MySQL 上工作
- python - 如何在python上注释空列表
- firebase - VueJS this.$firebase.storage 不是函数
- java - 如何在 Kuberetes 的容器中将应用程序配置与 AP 分开?
- scopus - 如何使用 Scopus Serial Title API 检索特定学科分类类别的期刊列表?
- reactjs - TypeScript React 中的对象可能为空
- php - PHP Curl 数组只显示一个对象