Swift分组数组值
示例
如果我们有这样的结构
struct Box {
let name: String
let thingsInside: Int
}和一系列Box(es)
let boxes = [
Box(name: "Box 0", thingsInside: 1),
Box(name: "Box 1", thingsInside: 2),
Box(name: "Box 2", thingsInside: 3),
Box(name: "Box 3", thingsInside: 1),
Box(name: "Box 4", thingsInside: 2),
Box(name: "Box 5", thingsInside: 3),
Box(name: "Box 6", thingsInside: 1)
]我们可以按thingsInside属性对这些框进行分组,以获取,Dictionary其中key是事物的数量,而值是盒子的数组。
let grouped = boxes.reduce([Int:[Box]]()) { (res, box) -> [Int:[Box]] in
var res = res
res[box.thingsInside] = (res[box.thingsInside] ?? []) + [box]
return res
}现在分组为一个,[Int:[Box]]并具有以下内容
[
2: [Box(name: "Box 1", thingsInside: 2), Box(name: "Box 4", thingsInside: 2)],
3: [Box(name: "Box 2", thingsInside: 3), Box(name: "Box 5", thingsInside: 3)],
1: [Box(name: "Box 0", thingsInside: 1), Box(name: "Box 3", thingsInside: 1), Box(name: "Box 6", thingsInside: 1)]
]
热门推荐
7 天仙配简短祝福语
10 女士简短祝福语大全集
11 惊喜自己的祝福语简短
12 王凯结婚祝福语简短
13 姐姐生日精简祝福语简短
14 新年至客户祝福语简短
15 金婚祝福语大全简短唯美
16 生日摆摊祝福语简短独特
17 迎元旦平安祝福语简短
18 生日祝福语简短女友英语