数组 – 重新排序数组与Swift中的另一个数组相比
发布时间:2020-12-14 04:26:25 所属栏目:百科 来源:网络整理
导读:参见英文答案 Sorting a Swift array by ordering from another array????????????????????????????????????6个 我在Swift中有一个包含一些对象id的数组,我有另一个包含这些对象及其id的数组,所以像这样: class MyObject { let id: String ...}let ids: [St
参见英文答案 >
Sorting a Swift array by ordering from another array????????????????????????????????????6个
我在Swift中有一个包含一些对象id的数组,我有另一个包含这些对象及其id的数组,所以像这样: class MyObject { let id: String ... } let ids: [String] = ... let objects: [MyObject] = ... 现在,id的数组按照一些自定义顺序排序,我需要以相同的顺序对对象数组进行排序.例如: let ids: [String] = ["1","2","3"] let objects: [MyObject] = [obj3,obj1,obj2] // obj1.id = "1" // obj2.id = "2" // obj3.id = "3" objects.reorder(template: ids) // Now objects = [obj1,obj2,obj3] 所以我基本上需要实现这个重新排序方法. 解决方法
您可以对对象进行排序,以便遵循ID编写中的顺序
let sorted = objects.sort { ids.indexOf($0.id) < ids.indexOf($1.id) } // [{id "1"},{id "2"},{id "3"}] 另一个例子 let ids: [String] = ["3","1"] let objects: [MyObject] = [MyObject(id: "3"),MyObject(id: "1"),MyObject(id: "2")] let sorted = objects.sort { ids.indexOf($0.id) < ids.indexOf($1.id) } // [{id "3"},{id "1"}]
Swift 4.2解决方案 let sorted = objects.sorted { ids.index(of: $0.id)! < ids.index(of: $1.id)! } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |