【发布时间】:2018-07-17 14:23:30
【问题描述】:
大家好,我正在尝试通过在 swift 中使用 sorted by 对字典数组([["key": Int, "value": Any]] 格式)进行排序,但它无法正常工作。这是我的字典数组,这些字典包含一个字典,我在子字典中有一个唯一标识符,即“id”,我也有唯一键。请指导我。实际上我的数据格式如下。如何使用“id”获取值对其进行排序([“isMale”:false,“status”:“”,“name”:“John”,“id”:10)])
var dataArray = [(key: 10, value: ["isMale": false, "status": "", "name": "John","id": 10)], (key: 2, value: ["isMale": false, "status": "", "name": "John","id": 2]), (key: 3, value: ["isMale": false, "status": "", "name": "John","id": 3]), (key: 7, value:
["isMale": false, "status": "", "name": "John","id": 7]), (key: 9, value: ["isMale": false, "status": "", "name": "John","id": 9]), (key: 4, value: ["isMale": false, "status": "", "name": "John","id": 4]), (key: 6, value: ["isMale": false, "status": "", "name": "John","id": 6]), (key: 5, value: ["isMale": false, "status": "", "name": "John","id": 5]), (key: 8, value: ["isMale": false, "status": "", "name": "John","id": 8]), (key: 11, value: ["isMale": false, "status": "", "name": "John","id": 11])];
var data = [Int:Any]() data = dataArray.sorted(by: { $0 < $1 })
【问题讨论】:
-
排序的逻辑是什么?换句话说:什么定义了一个特定的 dict 在排序之后应该位于另一个 dict 的较低索引处?
-
let result = dataArray.sorted(by: {($0["key"] as! Int) < ($1["key"] as! Int)}) -
排序后我想得到所有的值
-
实际上我的数据格式如下:[("key":"A", "value":["isMale": false, "status": "", "name": "John" ,"id": 10]), ("key":"B", "value":["isMale": false, "status": "", "name": "John","id": 2) , ("key":"C", "value":["isMale": false, "status": "", "name": "John","id": 3])]
标签: ios arrays swift sorting dictionary