【发布时间】:2020-11-11 13:31:24
【问题描述】:
我想按 id 对员工列表进行分组,并找出有多少人属于特定范围。
例如:
假设我们有 3 个 id 范围:
[1, 10]
[12, 23]
[25, 33]
我们有 5 名员工:
史蒂夫,身份证 1
彼得,身份证 3
保罗,身份证 12
玛丽,身份证 28
约翰,身份证号 18
结果应该显示:
Steve & Peter 被分配到范围 [1, 10] 因为他们的 id 在该范围。
Paul & John 被分配到 [12, 23] 范围,因为他们的 id 在该范围内。
Mary 被分配到 [25, 33] 范围内,因为她的 id 在该范围内。
在 Swift 中获得此结果的最佳方法是什么?
我的方法是使用字典首先按 id 分组,然后在下一步将 id 映射到范围。
第一步很清楚:
// Class Employee has the properties 'id' (Int) and 'name' (String)
let dict = Dictionary(grouping: employees) { // employees is of type [Employee]
$0.id // group by id
}
但在这里我被卡住了 - 我无法在不循环所有组合的情况下正确地进行映射。
结果我想得到:
[(5,6,[Steve, Peter]),
(12,23,[Paul, John]),
(25,33,[Mary]
]
有什么建议吗?
【问题讨论】:
标签: swift sorting dictionary grouping